由 彼得·凯尔纳
图像标记助手增强了 <img> 标记,为静态图像文件提供缓存刷新功能。
缓存破解字符串是一个唯一值,表示静态图像文件的哈希,并附加在资源 URL 之上。 唯一字符串会提示客户端(和某些代理)从主机 Web 服务器重新加载映像,而不是从客户端的缓存中重新加载映像。
如果映像源 (src) 是主机 Web 服务器上的静态文件:
- 唯一的缓存破坏字符串作为查询参数追加到图像源。
- 如果主机 Web 服务器上的文件发生更改,则会生成包含更新的请求参数的唯一请求 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 。 如果 Web 服务器无法获取对静态文件的读取访问权限,则 v 不会向呈现的标记中的属性添加 src 任何参数。
有关标记帮助程序为外部 wwwroot静态文件生成版本,请参阅 从多个位置提供文件
哈希缓存行为
图像标签辅助器使用本地 Web 服务器上的缓存提供程序来存储计算得出的给定文件的 Sha512 哈希。 如果多次请求文件,则不会重新计算哈希。 计算文件 Sha512 哈希时附加到文件的文件观察程序使缓存失效。 当文件在磁盘上更改时,将计算并缓存新的哈希。