在bundleconfig.cs中生成物理文件包

时间:2017-12-23 07:57:23

标签: c# asp.net-mvc bundle

我的bundleconfig.cs文件中有大约100个捆绑包,如下所示。如何为下面的包

生成物理文件
bundles.Add(new ScriptBundle("~/bundles/jqueryall")
   .IncludeDirectory("~/scripts/jquery", "*.js", true)
bundles.Add(new ScriptBundle("~/bundles/jqueryall")
   .IncludeDirectory("~/scripts/admin", "*.js", true)
bundles.Add(new ScriptBundle("~/bundles/jqueryall")
   .IncludeDirectory("~/scripts/user", "*.js", true)
....
....
....

为什么我需要捆绑的物理文件?

我有内部部署的MVC应用程序,我不需要为每个捆绑包提供物理文件。

现在,我计划将我的应用程序作为SaaS提供。所以为了性能考虑,我想从CDN提供它。

如上所述,我的应用程序中已经有大约100个捆绑包,所以我正在寻找更简单的方法来为BundleConfig.cs中的所有捆绑生成物理文件,通过这种方式我可以拥有单个BundleConfig.cs并拥有为我的应用程序支持内部部署和SaaS。

更新了

是的,我可以在浏览中打开捆绑链接并保存它们,但如果我对所有捆绑的核心js进行了更改,那么我需要在浏览器中再次打开这100个捆绑包以获得缩小的内容SaaS的开发更耗时。我看起来更容易,现在可以在asp.net核心应用程序中找到

1 个答案:

答案 0 :(得分:1)

您可以将您的require文件添加到包BundleTable.EnableOptimizations = true;并加载到浏览器,并获取您创建的包的链接。现在从捆绑链接中保存文件并将其部署到CDN。

现在下面的代码是使用捆绑访问CDN文件,请记住,您不能将任何其他本地或CDN文件混合到单个捆绑包中,

在bundle config中添加CDN链接的示例代码

public static void RegisterBundles(BundleCollection bundles)
{
    //bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
    //            "~/Scripts/jquery-{version}.js"));

    bundles.UseCdn = true;   //enable CDN support

    //add link to jquery on the CDN
    var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js";

    bundles.Add(new ScriptBundle("~/bundles/jquery",
            jqueryCdnPath).Include(
            "~/Scripts/jquery-{version}.js"));

// Code removed for clarity.
}