我的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核心应用程序中找到
答案 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.
}