Auxiliar de Marca de Imagem no ASP.NET Core
Por Peter Kellner
O Auxiliar de Marca de Imagem aprimora a marca <img>
para fornecer comportamento de extrapolação de cache para arquivos de imagem estática.
Uma cadeia de caracteres de extrapolação de cache é um valor exclusivo que representa o hash do arquivo de imagem estática acrescentado à URL do ativo. A cadeia de caracteres exclusiva solicita que os clientes (e alguns proxies) recarreguem a imagem do servidor Web do host, e não do cache do cliente.
Se a origem da imagem (src
) for um arquivo estático no servidor Web de host:
- Uma cadeia de caracteres exclusiva de extrapolação de cache será anexada como um parâmetro de consulta à origem da imagem.
- Se o arquivo no servidor Web host for alterado, será gerada uma URL de solicitação exclusiva que inclua o parâmetro de solicitação atualizado.
Para ter uma visão geral dos Auxiliares de Marcação, confira Auxiliares de Marcação no ASP.NET Core.
Atributos de Auxiliar de Marca de Imagem
src
Para ativar o Auxiliar de Marca de Imagem, o atributo src
é obrigatório no elemento <img>
.
A origem da imagem (src
) deve apontar para um arquivo estático físico no servidor. Se src
for um URI remoto, o parâmetro de cadeia de caracteres de consulta de extrapolação de cache não será gerado.
asp-append-version
Quando asp-append-version
for especificado com um valor true
junto com um atributo src
, o Auxiliar de Marca de Imagem será invocado.
O exemplo a seguir usa um Auxiliar de Marca de Imagem:
<img src="~/images/asplogo.png" asp-append-version="true">
Se o arquivo estático existe no diretório /wwwroot/images/, o HTML gerado é semelhante ao seguinte (o hash será diferente):
<img src="/images/asplogo.png?v=Kl_dqr9NVtnMdsM2MUg4qthUnWZm5T1fCEimBPWDNgM">
O valor atribuído ao parâmetro v
é o valor de hash do arquivo asplogo.png
no disco. Se o servidor Web não conseguir obter acesso de leitura ao arquivo estático, nenhum parâmetro v
será adicionado ao atributo src
na marcação renderizada.
Para que um Ajudante de Tags gere uma versão para um arquivo estático fora do wwwroot
, confira Distribuir arquivos a partir de vários locais
Comportamento de armazenamento em cache de hash
O Auxiliar de Marca de Imagem usa o provedor de cache no servidor Web local para armazenar o hash Sha512
calculado de um determinado arquivo. Se o arquivo for solicitado várias vezes, o hash não será recalculado. O cache é invalidado por um observador de arquivo anexado ao arquivo quando o hash Sha512
do arquivo é calculado. Quando o arquivo muda no disco, um novo hash é calculado e armazenado em cache.