ASP.NET Core 的影像標籤協助程式
由 Peter Kellner 提供
影像標籤協助程式會強化 <img>
標記,為靜態影像檔案提供快取破壞行為。
快取破壞 (cache busting) 字串是唯一值,代表附加至資產的 URL 靜態影像檔案雜湊。 唯一字串會提示用戶端 (和某些 Proxy) 從主機 Web 伺服器重新載入影像,而不是從用戶端的快取重新載入。
如果影像來源 (src
) 是主機 Web 伺服器上的靜態檔案:
- 唯一的快取破壞字串會作為查詢參數附加至影像來源。
- 如果主機 Web 伺服器上的檔案變更,則會產生唯一的要求 URL,以包含更新的要求參數。
如需標籤協助程式的概觀,請參閱 ASP.NET Core 中的標籤協助程式。
影像標籤協助程式屬性
src
若要啟用影像標籤協助程式,src
項目需要 <img>
元素。
影像來源 (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
檔案的雜湊值。 如果網頁伺服器無法取得靜態檔案讀取權限,就不會在轉譯標記中將 v
參數新增至 src
屬性。
若要讓標籤協助程式在 wwwroot
外部產生靜態檔案的版本,請參閱從多個位置提供檔案
雜湊快取行為
影像標籤協助程式會使用本機網頁伺服器上的快取提供者,來儲存指定檔案計算出的 Sha512
雜湊。 如果多次要求檔案,則不會重新計算雜湊。 當檔案的 Sha512
雜湊計算得出時,附加至檔案的檔案監看員會讓快取失效。 當磁碟上的檔案變更時,會計算並快取新的雜湊。