Теперь модифицируйте частичное представление
_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
, как показано ниже:
<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>