为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET Core 的“asp-fallback-*”CDN 标签助手如何工作?

ASP.NET Core 的“asp-fallback-*”CDN 标签助手如何工作?

C#
慕慕森 2021-10-09 16:51:50
我了解asp-fallback-*标签助手的作用。我不明白的是如何。例如:<link rel="stylesheet"      href="//ajax.aspnetcdn.com/ajax/bootstrap/3.3.5/css/bootstrap.min.css"      asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"      asp-fallback-test-class="sr-only"      asp-fallback-test-property="position"      asp-fallback-test-value="absolute" />这会从 CDN 加载引导程序,并在 CDN 关闭时加载本地副本。但它是如何决定这样做的呢?我认为它的检查asp-fallback-test-class,asp-fallback-test-property和asp-fallback-test-value。但是这些属性是什么意思呢?如果我想从 CDN 连接其他一些库,我需要为这些库提供一些东西,但我不确定在那里放什么。有很多这样的例子,但我找不到关于它是如何工作的解释。更新我并不是真的想了解标签助手是如何工作的——它们是如何呈现的,等等。我试图了解如何为这些属性选择值。例如,jQuery 回退脚本通常asp-fallback-test="window.jQuery"是有意义的——它是一个测试,看看 jQuery 是否已经加载。但是我上面展示的那些是完全不同的。人们如何选择它们?如果我想使用其他一些 CDN 交付的库,我需要为这些属性指定值……我会使用什么?为什么选择那些用于引导程序?更新 2要了解回退过程本身的工作原理以及这些标签的编写方式,请参阅@KirkLarkin 的回答。要了解为什么使用这些测试值,请参阅我的回答。
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

好的,我想我现在明白了,结合@KirkLarkin 的回答和常识。

sr-only被应用到隐藏meta元件。如果加载了引导程序,则该元素将获得 css 值position:absolute。所以这是经过测试的,如果是这样,则表示已加载 Bootstrap。

因此,对于任何库,您都需要选择一个只有该库才能执行的示例,并相应地设置隐藏<meta>标签的样式,然后指定要测试的 css 样式以及您期望的值。

对于 javscript,它甚至更容易,因为您可以只测试库本身,它通常window在 DOM 中添加了一些众所周知的变量。所以对于 jQuery 它是window.jQuery,对于 Bootstrap 它可以被测试window.jQuery && window.jQuery.fn && window.jQuery.fn.modal等等。


查看完整回答
反对 回复 2021-10-09
  • 2 回答
  • 0 关注
  • 230 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信