我已经通过StyleBundle将bootstrap CSS文件添加到我的asp.net mvc 5项目中。
(用作Cdn:https://www.asp.net/ajax/cdn#Bootstrap_Releases_on_the_CDN_14)
var bootstrapCssCdnPath = "http://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css";
var bootstrapCssBundle = new StyleBundle("~/bundles/css/bootstrap", bootstrapCssCdnPath).Include("~/Content/bootstrap.css");
//bootstrapCssBundle.CdnFallbackExpression // ?
bundles.Add(bootstrapCssBundle);
var bootstrapThemeCssCdnPath = "http://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap-theme.min.css";
var bootstrapThemeCssBundle = new StyleBundle("~/bundles/css/bootstraptheme", bootstrapThemeCssCdnPath).Include("~/Content/bootstrap-theme.css");
//bootstrapCssBundle.CdnFallbackExpression // ?
bundles.Add(bootstrapThemeCssBundle);
但是有一个问题:当我添加一个不正确的网址作为CDN时(例如添加' ahttp'而不是' http')我的自定义"后备"不使用css文件,而是显示' ahttp://'在我的HTML源代码中。 我在Debug或Release上运行我的网站时也一样。
答案 0 :(得分:8)
1)这是Microsoft ASP.NET优化框架中的一个错误,记录为here。
2)解决方法是将CdnFallbackExpression
修改为javascript函数,该函数既检查样式表又加载回退,从而忽略优化框架中的错误脚本。 / p>
此解决方案提供StyleBundle
扩展方法来解决问题:Style Bundle Fallback。
3)应该有像bootstrap.css
(非bootstrap.min.css
)这样的未分类版本。在构建Web应用程序以进行发布时,它使用.min
版本。更多信息:Bundler not including .min files。
4)不,您不能将多个CSS文件与CDN一起使用(每个文件都必须有自己的捆绑包)。这篇文章解释了何时使用CDN(或不使用CDN)以及原因:Know When To CDN。