Вспомогательная функция тега изображения в 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, делает кэш недействительным. При изменении файла на диске вычисляется и кэшируется новый хэш.

Дополнительные ресурсы