ASP.NET Core 中的脚本标记帮助程序

作者:Rick Anderson

脚本标记帮助程序生成指向主脚本文件或回退脚本文件的链接。 通常,主脚本文件托管在内容分发网络(CDN)上。

内容分发网络(CDN):

  • 与通过 Web 应用托管资产相比,提供多种 性能优势。
  • 不应将其作为该资产的唯一来源。 CDN 并不总是可用,因此应使用可靠的回退。 回退通常是托管 Web 应用的站点。

使用脚本标记帮助程序,可以指定脚本文件的 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 脚本。 脚本标记帮助程序呈现立即执行 asp-fallback-test 表达式的 JavaScript。 如果延迟加载 CDN 脚本,表达式将失败。

常用的 Script Tag Helper 属性

有关所有脚本标记帮助程序属性、特性和方法,请参阅 脚本标记帮助程序。

src

要使用的外部脚本的地址。

asp-append-version

当使用 true 值和 src 属性指定 asp-append-version 时,将生成唯一版本。

有关标记帮助程序为外部 wwwroot静态文件生成版本,请参阅 从多个位置提供文件

asp-fallback-src

在主脚本标记失败的情况下,要回退到的脚本标记的 URL。

asp-fallback-src-exclude

在主要脚本失败的情况下,JavaScript 脚本要从回退列表中排除的以逗号分隔的文件模式列表。 glob 模式相对于应用程序的 webroot 设置进行评估。 必须与 asp-fallback-src-include 配合使用。

asp-fallback-src-include

在主脚本失败时用于回退的 JavaScript 脚本的以逗号分隔的文件模式列表。 通配模式是相对于应用程序的 webroot 设置进行评估的。

asp-fallback-test

用于回退测试的主脚本中定义的脚本方法。 有关详细信息,请参阅 FallbackTestExpression。

asp-order

执行一组 ITagHelper 实例时,其 Init(TagHelperContext) 方法首先按指定顺序调用;然后按指定顺序调用其 ProcessAsync(TagHelperContext, TagHelperOutput) 方法。 数值较小的项会先执行。

asp-src-exclude

JavaScript 脚本要从加载中排除的以逗号分隔的文件模式列表。 glob 模式匹配相对于应用程序的 webroot 设置进行评估。 必须与 asp-src-include 配合使用。

asp-src-include

要加载的 JavaScript 脚本的通配符文件模式的逗号分隔列表。 glob 模式是相对于应用程序的 webroot 设置进行评估的。

asp-suppress-fallback-integrity

确定完整性哈希是否将与 asp-fallback-src 值进行比较的布尔值。