ASP.NET Core 的指令碼標籤協助程式

作者:Rick Anderson

指令碼標籤協助程式產生主要或後援指令檔的連結。 通常情況下,主要指令檔是在內容傳遞網路 (CDN) 上。

CDN:

  • 與透過 Web 應用程式裝載資產相比,有多種效能優勢
  • 不應依賴作為資產的唯一來源。 CDN 不一定可供使用,因此應該使用可靠的後援。 後援通常應該是裝載 Web 應用程式的網站。

指令碼標籤協助程式可讓您指定指令檔的 CDN,還可以指定在 CDN 無法使用的情況下的後援 CDN。 指令碼標籤協助程式具備本機裝載的健全性,因此提供了 CDN 的效能優勢。

下列 Razor 標記顯示具有後援的 script 元素:

<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.3.1.js"
        asp-fallback-src="~/lib/jquery/dist/jquery.js"
        asp-fallback-test="window.jQuery"
        crossorigin="anonymous"
        integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT">
</script>

請勿使用 <script> 元素的 defer 屬性來延遲載入 CDN 指令碼。 指令碼標籤協助程式會轉譯 JavaScript,以立即執行 asp-fallback-test 運算式。 如果 CDN 指令碼延遲載入,此運算式就會失敗。

常用的指令碼標籤協助程式屬性

如需所有指令碼標籤協助程式屬性、屬性和方法,請參閱指令碼標籤協助程式

src

要使用的外部指令碼的位址。

asp-append-version

使用 true 值以及 src 屬性指定 asp-append-version 時,會產生唯一的版本。

若要讓標籤協助程式在 wwwroot 外部產生靜態檔案的版本,請參閱從多個位置提供檔案

asp-fallback-src

在主要指令碼標籤失敗的情況下,要作為後援的指令碼標籤 URL。

asp-fallback-src-exclude

在主要指令碼失敗的情況下,要從後援清單中排除的 JavaScript 指令碼的 Glob 檔案模式逗號分隔清單。 Glob 模式會相對於應用程式的 webroot 設定進行評估。 必須與 asp-fallback-src-include 搭配使用。

asp-fallback-src-include

在主要指令碼失敗的情況下,要作為後援的 JavaScript 指令碼的 Glob 檔案模式逗號分隔清單。 Glob 模式會相對於應用程式的 webroot 設定進行評估。

asp-fallback-test

用於後援測試的主要指令碼中定義的指令碼方法。 如需詳細資訊,請參閱FallbackTestExpression

asp-order

執行一組 ITagHelper 執行個體時,會先以指定順序叫用其 Init(TagHelperContext) 方法,然後會依指定順序叫用其 ProcessAsync(TagHelperContext, TagHelperOutput) 方法。 先執行較低的值。

asp-src-exclude

要從載入中排除的 JavaScript 指令碼的 Glob 檔案模式逗號分隔清單。 Glob 模式會相對於應用程式的 webroot 設定進行評估。 必須與 asp-src-include 搭配使用。

asp-src-include

要載入的 JavaScript 指令碼的 Glob 檔案模式逗號分隔清單。 Glob 模式會相對於應用程式的 webroot 設定進行評估。

asp-suppress-fallback-integrity

布林值,判斷完整性雜湊是否會與 asp-fallback-src 值進行比較。

其他資源