1

我目前正在学习 MVC 风格的 ASP.NET 4.5,我决定完全删除引导程序并使用 PureCSS ( http://www.purecss.io )。

这主要是因为我的 Web 应用程序除了代码隐藏之外几乎不需要脚本,以及一些用于数据验证等的轻量级 JS。

目前我正在链接到来自 Yahoo! 的组合 PureCSS 样式表。CDN:

<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/pure-min.css">

在我的 _Layout.cshtml 文件中。这显然是有用的,但是我有两个问题:

  1. 如果 CVN(无论出于何种原因)失败/关闭/更改,所有样式都会消失,我将不得不即时解决该问题(或实施一段时间的故障安全切换到另一个 CDN)
  2. 我真的很喜欢捆绑的概念,我想捆绑本地的 PureCSS 库,以防止上述问题以及模块化/分隔。

生成这个捆绑包是一个简单的问题:

bundles.Add(new StyleBundle("~/Content/css").Include(
                    "~/Content/purecss_release_1_6/some.css",
                    "~/Content/purecss_release_1_6/other.css",
                    "~/Content/purecss_release_1_6/neat.css",
                    "~/Content/purecss_release_1_6/etc.css",
                    ...
                    "~/Content/site.css"));

如果是这样,那很好,而且很花哨,但是发行版中有数十个 css 文件。有没有更清洁的方法来捆绑它们?

谢谢!

4

1 回答 1

1

您可以使用IncludeDirectory来引用包含所有 CSS 文件的整个目录。

特定于您的案例的示例

bundles.Add(new StyleBundle("~/Content/css")
    .IncludeDirectory("~/Content/purcss_release", "*.css"));

.NET 4.5 中的新功能是一个集成系统,用于从失败的 CDN 回退到本地材料。教程/资料:http ://www.hanselman.com/blog/CDNsFailButYourScriptsDontHaveToFallbackFromCDNToLocalJQuery.aspx

来自上述链接的可用信息:

CDN 回退的基本思想是检查脚本加载后应该存在的类型或变量,如果不存在,请尝试在本地获取该脚本。请注意 document.write 中的重要转义字符。这是jQuery:

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-2.0.0.min.js"></script>
<script>
if (typeof jQuery == 'undefined') {
    document.write(unescape("%3Cscript src='/js/jquery-2.0.0.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
于 2015-07-20T18:01:45.723 回答