Вопрос или проблема
У меня есть приведенный ниже код в моем _layout, и он отображает то, что я хочу, так, как я этого хочу. Теперь в своих разных представлениях (см. второй код) я пытаюсь вставить несколько иконок, используя Bootstrap или Font Awesome, но ничего не отображается. Когда я проверяю страницу в браузере, я могу видеть пространство, отведенное для иконок, но сами иконки не видны.
Содержимое моего _layout:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<title>@ViewData["Title"] - LKGest</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Rancho&effect=shadow-multiple">
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/LKGest.styles.css" asp-append-version="true" />
@* ********** Форматирование заголовка страниц ********** *@
<style>
header {
font-family: 'Tangerine', 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
font-size: 20px;
text-shadow: 4px 4px 4px #aaa;
}
</style>
</head>
<body>
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-primary border-bottom box-shadow mb-3">
<div class="container-fluid">
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">LKGest</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-light" asp-area="" asp-controller="Home" asp-action="Index">Главная</a>
</li>
<li class="nav-item">
<a class="nav-link text-light" asp-area="" asp-controller="Home" asp-action="Privacy">Предыдущий меню</a>
</li>
</ul>
<p class="nav navbar-text text-light">Привет, @User.Identity?.Name!</p>
</div>
</div>
</nav>
</header>
<div class="container">
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
<footer id="footer" class="border-top footer text-muted">
<div class="container">
<span class="copyright">© Авторские права и дизайн: LOUKOU's.</span>
</div>
</footer>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
Содержимое моего представления:
@model List<Profession>
<div class="container">
<div class="row pt-4 pb-3">
<div class="col-6">
<h2 class="text-primary">
Список профессий
</h2>
</div>
<div class="col-6 text-end fa fa-ambulance">
<a asp-controller="Administrateur" asp-action="create_Professions" class="btn btn-primary">
<i class="bi bi-plus-circle"></i>
@*<i class="fa-solid fa-circle-plus"></i>*@
Создать новую профессию
</a>
</div>
</div>
<div class="row pt-4">
<div class="col-8">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>
№
</th>
<th>
Имя
</th>
<th>
Заметки
</th>
</tr>
</thead>
<tbody>
@foreach (var obj in Model.OrderBy(u => u.NomProfession))
{
<tr>
<td>@obj.NoProfession</td>
<td>@obj.NomProfession</td>
<td>@obj.RemProfession</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
Ответ или решение
Конечно, давайте решим проблему с иконками Bootstrap и Font Awesome, которые не отображаются на ваших страницах. Мы пройдемся по нескольким возможным причинам и решениям.
Ваша проблема
Иконки Bootstrap или Font Awesome не отображаются, но вы видите пространство, занимаемое этими иконками, в инструментах разработчика. Это указывает на то, что ваши стили не загружаются должным образом.
Возможные причины и решения
-
Подключение Font Awesome:
Убедитесь, что вы подключили Font Awesome в вашем проекте. В вашем коде отсутствует отдельная ссылка на библиотеку Font Awesome. Попробуйте добавить следующий код в секцию
<head>
вашего_Layout.cshtml
:<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" integrity="sha384-k6RqeWeci5ZR/Lv4MR0sA0FfDOMB3k8830cM28r7kThI3f9c0FDMkmF3fChfM9c" crossorigin="anonymous">
Убедитесь, что вы используете самую последнюю версию Font Awesome, или ту, которая поддерживает ваши иконки.
-
Использование правильного синтаксиса для иконок:
Вы используете
<i class="bi bi-plus-circle"></i>
в вашем коде. Если вы хотите использовать Font Awesome, убедитесь, что вы используете правильный синтаксис для иконок. Например, если вы хотите отобразить иконку "плюс":<i class="fas fa-plus-circle"></i>
Если вы используете иконки из Bootstrap Icons, убедитесь, что вы подключили нужную библиотеку, и используете корректные классы.
-
Конфликты стилей:
Иногда стили могут конфликтовать друг с другом. Попробуйте проверить в инструменте разработчика, загружаются ли стили Font Awesome и видны ли они в списке загружаемых ресурсов. Если конфликтов нет, убедитесь, что другие CSS-файлы в вашем проекте не переопределяют стили иконок.
-
Проверка видимости контейнера:
Убедитесь, что контейнер, в котором размещены ваши иконки, видим. Если структура HTML/CSS обеспечивает прилипание и/или скрытие элемента, это может повлиять на отображение ваших иконок.
-
Кеширование браузера:
Иногда изменения стилей или скриптов не отображаются из-за кеширования браузера. Попробуйте очистить кэш или открыть страницу в режиме инкогнито.
Пример исправленного кода
Вот как будет выглядеть ваш обновленный _Layout.cshtml
и View content
с учетом вышеуказанных изменений:
_Layout.cshtml:
<head>
...
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" integrity="sha384-k6RqeWeci5ZR/Lv4MR0sA0FfDOMB3k8830cM28r7kThI3f9c0FDMkmF3fChfM9c" crossorigin="anonymous">
...
</head>
View content:
<div class="container">
<div class="row pt-4 pb-3">
<div class="col-6">
<h2 class="text-primary">
Liste des professions
</h2>
</div>
<div class="col-6 text-end">
<a asp-controller="Administrateur" asp-action="create_Professions" class="btn btn-primary">
<i class="fas fa-plus-circle"></i> <!-- Измененный класс иконки -->
Créer une nouvelle profession
</a>
</div>
</div>
...
</div>
Заключение
После применения всех предложенных шагов ваши иконки должны появиться на странице. Если проблемы сохраняются, убедитесь, что все файлы стилей загружаются корректно и без ошибок. Вы можете также попробовать тестировать на разных устройствах или браузерах, чтобы исключить локализованный баг.