【发布时间】:2014-01-27 02:24:24
【问题描述】:
MVC 是否具有为样式表指定 CDN 回退的内置方法?我正在尝试为 jQuery Mobile Structure 样式表设置后备。
这是我在RegisterBundles 方法中的代码:
var JQMstyleSheet = new StyleBundle("~/JQMstyle", "http://code.jquery.com/mobile/1.3.1/jquery.mobile.structure-1.3.1.min.css").Include("~/theme/jquery.mobile.structure-1.3.1.css");
JQMstyleSheet.CdnFallbackExpression = "window.jQuery.mobile";
bundles.Add(JQMstyleSheet);
当页面呈现时,它会将其输出到 html:
<script>
(window.jQuery.mobile)||document.write('<script src="/JQMstyle"><\/script>');
</script>
当 CDN 失败时,它不会像对我的 javascript 文件那样完美地动态添加样式表。
我认为问题在于它正在尝试渲染脚本,而它应该是一种样式。除了CdnFallbackExpression,还有其他的备用属性吗?
更新
System.Web.Optimization.StyleBundle 的 Microsoft 文档将 CdnFallbackExpression 显示为可用属性,但是在描述中它显示“获取由 Scripts 辅助类呈现的脚本扩展...”
http://msdn.microsoft.com/en-us/library/system.web.optimization.stylebundle(v=vs.110).aspx
这是System.Web.Optimization.StyleBundle 中的错误吗?该属性不应该通过引用 Styles 辅助类来实现吗?
【问题讨论】:
-
JQMstyleSheet.CdnFallbackExpression = "window.jQuery.mobile";你为什么放这个? -
如果 cdn 失败,我需要加载样式表。检查 window.jQuery.mobile 会告诉我 jquery mobile 的 cdn 下载是否失败,那么我知道样式表 cdn 下载很可能也失败了。我不确定如何使用 CdnFallbackExpression 检查样式表是否存在。
标签: jquery asp.net-mvc-4 cdn bundling-and-minification