Вспомогательная функция тега изображения в ASP.NET Core
Автор: Питер Кельнер (Peter Kellner)
Вспомогательная функция тега изображения расширяет возможности тега <img>
, чтобы предоставлять поведение отключения кэширования для файлов статических изображений.
Строка отключения кэширования — это уникальное значение, представляющее хэш-код статического файла изображения, добавленный к URL-адресу ресурса. Уникальная строка требует у клиентов (и некоторых прокси-серверов) повторно загружать изображение с веб-сервера, а не из кэша клиента.
Если источник изображения (src
) представляет собой статический файл на веб-сервере:
- Уникальная строка отключения кэширования добавляется в качестве параметра запроса к источнику изображения.
- При изменении файла на веб-сервере узла создается уникальный URL-адрес запроса, включающий в себя обновленный параметр запроса.
Общие сведения о вспомогательных функциях тегов см. в разделе Вспомогательные функции тегов в ASP.NET Core.
Атрибуты вспомогательной функции тега изображения
src
Для активации вспомогательной функции тега изображения требуется атрибут src
в элементе <img>
.
Источник изображения (src
) должен указывать на физический статический файл на сервере. Если src
— это удаленный URI, параметр строки запроса отключения кэширования не создается.
asp-append-version
Если указан asp-append-version
со значением true
и атрибутом src
, вызывается вспомогательная функция тега изображения.
В приведенном ниже примере используется вспомогательная функция тега изображения:
<img src="~/images/asplogo.png" asp-append-version="true">
Если статический файл существует в каталоге /wwwroot/images/, создаваемый код HTML будет похож на следующий (хэш-код будет иным):
<img src="/images/asplogo.png?v=Kl_dqr9NVtnMdsM2MUg4qthUnWZm5T1fCEimBPWDNgM">
Значением, назначенным параметру v
, является хэш-значение asplogo.png
файла на диске. Если веб-серверу не удается получить доступ для чтения к указанному статическому файлу, параметр v
не добавляется к атрибуту src
в преобразованной разметке.
Вспомогательный компонент тега для создания версии статического файла за пределами wwwroot
см. в разделе "Обслуживание файлов из нескольких расположений"
Поведение кэширования хэша
Вспомогательная функция тега изображения использует поставщик кэша на локальном веб-сервере для хранения значения хэша Sha512
, вычисленного для данного файла. Если файл запрашивается несколько раз, хэш не пересчитывается. Наблюдатель, который назначается файлу при вычислении его значения хэша Sha512
, делает кэш недействительным. При изменении файла на диске вычисляется и кэшируется новый хэш.
Дополнительные ресурсы
ASP.NET Core
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по