【问题标题】:asp.net mvc 5 - StyleBundle CdnFallbackExpression questions?asp.net mvc 5 - StyleBundle CdnFallbackExpression 问题?
【发布时间】:2017-03-31 20:42:54
【问题描述】:

我已通过 StyleBundle 将引导 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);

但是有一个问题:当我添加一个不正确的 URL 作为 CDN(例如添加 'ahttp' 而不是 'http')时,我的自定义“后备”css 文件没有被使用,而是显示 'ahttp://'我的 html 源代码。 当我在 Debug 或 Release 上运行我的网站时也是如此。

  1. 为什么我的后备没有被使用?
  2. StyleBundle 的 CdnFallbackExpression 是什么? (特别是对于 bootstrap.css 和 bootstrap-theme.css)
  3. .Include 应该是 .min.css 文件还是自动搜索 .min。版本优先?
  4. 有没有办法 .Include 多个 css 文件,使用带有后备的 Cdn,这样我就不必每次使用 Cdn 的每个 css 文件都创建一个新的 StyleBundle?

【问题讨论】:

    标签: css asp.net-mvc twitter-bootstrap cdn


    【解决方案1】:

    1) 这是 Microsoft ASP.NET 优化框架中的一个错误,记录在 here。

    2) 解决方案是将CdnFallbackExpression 修改为既检查样式表又加载回退的javascript 函数,从而忽略优化框架中的错误脚本。

    这里是提供StyleBundle 扩展方法来解决问题的解决方案:Style Bundle Fallback。

    3) 应该有像bootstrap.css(不是bootstrap.min.css)这样的未缩小版本。当您构建 Web 应用程序以进行发布时,它使用 .min 版本。更多信息:Bundler not including .min files。

    4) 不,您不能在 CDN 中使用多个 CSS 文件(每个文件都必须有自己的捆绑包)。这里有一篇文章解释了何时使用(或不使用)CDN 以及为什么:Know When To CDN。

    【讨论】:

      猜你喜欢
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 2014-02-02
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多