由 彼得·凱爾納
Image Tag Helper 強化 <img> 標籤,為靜態影像檔案提供快取清除功能。
一個快取破壞字串是一種唯一值,代表靜態影像文件的雜湊值,並附加在資源的 URL 上。 唯一字串會提示客戶端(以及部分代理)從主機網頁伺服器重新載入影像,而非從客戶端快取。
若影像來源src()為主機網頁伺服器上的靜態檔案:
- 一個獨特的緩存消除字串會作為查詢參數附加到圖片來源。
- 若主機網頁伺服器上的檔案變更,會產生包含更新後請求參數的唯一請求 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 的雜湊值。 若網頁伺服器無法取得靜態檔案的讀取權限,則在渲染標記中不會 v 為屬性新增 src 參數。
如需標籤協助程式為外部 wwwroot靜態檔案產生版本,請參閱 從多個位置提供檔案
雜湊快取行為
影像標籤助手利用本地網頁伺服器上的快取提供者來儲存特定檔案的計算雜湊值 Sha512。 如果檔案被多次請求,雜湊值不會被重新計算。 當檔案的 Sha512 雜湊值計算完成後,附加到檔案上的文件監控器會使快取失效。 當磁碟上的檔案變更時,會計算並快取新的雜湊值。