ASP.NET Core 中的 Image 标签帮助器

彼得·凯尔纳

图像标记助手增强了 <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 哈希时附加到文件的文件观察程序使缓存失效。 当文件在磁盘上更改时,将计算并缓存新的哈希。

其他资源