Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Теперь модифицируйте частичное представление _JavaScriptFiles.cshtml, как показано ниже (обратите внимание, что файлы в разделе Development больше не имеют расширения .min):
<environment include="Development">
<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script>
</environment>
<environment exclude="Development">
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
</environment>
<script src="~/js/site.js" asp-append-version="true"></script>
Вспомогательная функция дескриптора для ссылки
Вспомогательная функция дескриптора для ссылки (<link>) имеет атрибуты, применяемые с локальными и удаленными файлами. Атрибут asp-append-version, используемый с локальными файлами, добавляет хеш-значение для файла как параметр строки запроса в URL, который отправляется браузеру. При изменении файла изменяется и хеш-значение, обновляя посылаемый браузеру URL. Поскольку ссылка изменилась, браузер очищает кеш от этого файла и перезагружает его. Модифицируйте дескрипторы ссылок для bootstrap.css и site.css в файле _Head.cshtml следующим образом:
<environment include="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css"
<b>asp-append-</b><b>version="true"/></b>
</environment>
<environment exclude="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
</environment>
<link rel="stylesheet" href="~/css/site.css" <b>asp-append-version="true"</b>/>
Ссылка, отправляемая браузеру для файла site.css, теперь выглядит так (ваше хеш-значение будет другим):
<link href="/css/site.css?v=v9cmzjNgxPHiyLIrNom5fw3tZj3TNT2QD7a0hBrSa4U"
rel="stylesheet">
При загрузке файлов CSS из сети доставки содержимого вспомогательные функции дескрипторов предоставляют механизм тестирования, позволяющий удостовериться в том, что файл был загружен надлежащим образом. Тест ищет конкретное значение для свойства в определенном классе CSS, и если свойство не дает совпадения, то вспомогательная функция дескриптора загрузит запасной файл. Модифицируйте раздел <environment exclude="Development"> в файле _Head.cshtml, как показано ниже:
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})<environment exclude="Development">
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/
bootstrap.min.css"
<b> asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.css"</b>
<b> asp-fallback-test-class="sr-only"</b>
<b> asp-fallback-test-property="position"</b>
asp-fallback-test-value="absolute"
crossorigin="anonymous"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/
iJTQUOhcWr7x9JvoRxT2MZw1T"/>
</environment>
Вспомогательная функция дескриптора для сценария
Вспомогательная функция дескриптора для сценария (<script>) похожа на вспомогательную функцию дескриптора для ссылки с настройками очистки кеша и перехода на запасной вариант загрузки из сети доставки содержимого. Атрибут asp-append-version работает для сценариев точно так же, как для ссылок на таблицы стилей. Атрибуты asp-fallback-* также применяются с источниками файлов в сети доставки содержимого. Атрибут asp-fallback-test просто проверяет достоверность кода JavaScript и в случае неудачи загружает файл из запасного источника.
Обновите частичное представление _JavaScriptFiles.cshtml, чтобы использовать очистку кеша и переход на запасной вариант загрузки из сети доставки содержимого (обратите внимание, что шаблон MVC уже содержит атрибут asp-append-version в дескрипторе <script> для site.js):
<environment include="Development">
<script src="~/lib/jquery/dist/jquery.js"
<b> asp-append-version="true"></script></b>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"
<b> asp-append-version="true"> </b>
</script>