ASP.NET Core 中的图像标记帮助程序

作者:Peter Kellner

图像标记帮助程序增强了 <img> 标记,为静态图像文件提供缓存破坏行为。

缓存破坏字符串是一个唯一值,表示附加到资产 URL 的静态图像文件的哈希值。 唯一字符串会提示客户端(和某些代理)从主机 Web 服务器重新加载图像,而不是从客户端的缓存重新加载。

如果图像源 (src) 是主机 web 服务器上的静态文件:

  • 将唯一缓存破坏字符串作为图像源的查询参数进行追加。
  • 如果主机 Web 服务器上的文件发生更改,将生成包含已更新请求参数的唯一请求 URL。

有关标记帮助程序的概述,请参阅 ASP.NET Core 中的标记帮助程序

图像标记帮助程序属性

src

若要激活图像标记帮助程序,<img> 元素需要有 src 属性。

图像源 (src) 必须指向服务器上的物理静态文件。 如果 src 是一个远程 URI,则不会生成缓存破坏查询字符串参数。

asp-append-version

如果使用 true 值和 src 属性指定 asp-append-version,则会调用图像标记帮助程序。

下面的示例使用图像标记帮助程序:

<img src="~/images/asplogo.png" asp-append-version="true">

如果目录 /wwwroot/images/ 中存在静态文件,则生成的 html 与下面类似(哈希有所不同):

<img src="/images/asplogo.png?v=Kl_dqr9NVtnMdsM2MUg4qthUnWZm5T1fCEimBPWDNgM">

分配给参数 v 的值是磁盘上的 asplogo.png 文件的哈希值。 如果 Web 服务器无法获取对静态文件的读取访问权限,则不会向呈现在标记中的 src 属性添加 v 参数。

哈希缓存行为

图像标记帮助程序使用本地 Web 服务器上的缓存提供程序来存储给定文件的已计算 Sha512 哈希。 如果多次请求文件,则不重新计算哈希值。 当计算该文件的 Sha512 哈希时,附加到该文件的文件观察程序会让 Cache 失效。 当磁盘上的的文件发生更改时,将会计算和缓存新的哈希。

其他资源

上一篇:ASP.NET Core 中的环境标记帮助程序

下一篇:ASP.NET Core 中的链接标记帮助程序

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程