【问题标题】:CDN path is not working in js bundling in MVCCDN 路径在 MVC 中的 js 捆绑中不起作用
【发布时间】:2013-06-09 15:35:14
【问题描述】:

我正在研究 ASP.NET MVC4。客户端需要从其他域(如 CDN 捆绑)加载所有 javascript 和 css。我使用过 System.Web.Optimization。

下面是代码。

 var bundle = new ScriptBundle("~/bundles/scripts/");
bundle.Orderer = new AsIsBundleOrderer();
bundle.EnableFileExtensionReplacements = false;
bundle.CdnPath = "http://js.cusomdomainname.com";
bundle.Include("~/Scripts/jquery-1.7.1.min.js",
                "~/Scripts/jquery.unobtrusive-ajax.min.js",
                "~/Scripts/jquery.validate.min.js",
                "~/Scripts/jquery.validate.unobtrusive.min.js");

BundleTable.Bundles.UseCdn = true;
BundleTable.EnableOptimizations = true;
BundleTable.Bundles.Add(bundle);
BundleTable.Bundles.IgnoreList.Clear();

正在观看

@Scripts.Render("~/bundles/scripts/")

但它不是从另一个域渲染的。

可能是什么问题?

【问题讨论】:

标签: c# asp.net-mvc asp.net-mvc-4 cdn bundling-and-minification


【解决方案1】:

本示例展示了如何在“发布”模式下从 CDN 加载资源,以及从“调试”模式在本地加载资源。

var jqueryCdnPath = "//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js";
var jqueryBundle = new ScriptBundle("~/bundles/jqueryCdn", jqueryCdnPath)
                       .Include("~/Scripts/jquery-{version}.js");

BundleTable.Bundles.Add(jqueryBundle);

CdnPath 指的是您想从 CDN 获取的资源,Include 告诉您在本地哪里可以找到该资源。您可以更改从 Web.config 请求哪一个。设置<compilation debug="true"/>使用本地文件,设置<compilation debug="false"/>使用CDN。

有关更多信息,请参阅这篇Bundling and Minification 文章。

【讨论】:

  • 使用您的解决方案,它对于 jquery 加载多个但也使用 cdn 加载多个 css 很有用,那么 cdn 怎么可能对此有任何想法,然后请让我知道我需要。
  • 在测试 CDN 离线场景时使用捆绑刚刚遇到问题。本地脚本加载失败。因为它在页面
【解决方案2】:

我不关心 cdnPath 东西在捆绑中的工作方式,因为您只能为整个捆绑指定单个文件路径。如果您想设置一个简单的回源 CDN,则执行以下操作要容易得多:

@Scripts.RenderFormat(
    "<script src='http://js.cusomdomainname.com{0}'></script>",
    "~/bundles/scripts/")

如果您有一个包含许多不同文件的捆绑包,无论是否启用了优化,这都会起作用。

这也解决了here描述的查询参数的问题

【讨论】:

  • 完全同意你的看法。捆绑包“几乎可以工作”。如果您可以只添加 CDN 路径,并且捆绑程序将从指定路径加载包含的脚本,那就完美了。
猜你喜欢
  • 2015-09-12
  • 2014-12-28
  • 1970-01-01
  • 2012-03-23
  • 2018-03-27
  • 2018-10-20
  • 2011-11-18
  • 1970-01-01
  • 2016-07-10
相关资源
最近更新 更多