我想在BundleConfig.cs文件中加载每页最少的文件数而不需要很多冗余代码。
var thirdPartyScriptBundle = new ScriptBundle("~/bundle/core").Include(
"~/Scripts/jquery-{version}.js", // JQuery Core
"~/Scripts/bootstrap.js", // Bootstrap
"~/Scripts/knockout-{version}.js", // Knockout
"~/Scripts/underscore.js", // Underscore
"~/Scripts/moment.js" // Moment
);
bundles.Add(thirdPartyScriptBundle);
var page1SpecificScriptBundle = new ScriptBundle("~/bundle/page1").Include(
"~/Scripts/page1.js"
);
bundles.Add(page1SpecificScriptBundle);
var page1MergedScriptBundle = new ScriptBundle("~/bundle/page1merged")
.Include("~/bundle/core")
.Include("~/bundle/page1");
bundles.Add(page1MergedScriptBundle );
不幸的是,当@Scripts.Render("~/bundles/page1merged")
添加到视图时,不包含任何javascript文件。
使用BundleTable.EnableOptimizations = false
我希望我的html包括:
<script src="/Scripts/jquery-2.2.0.js"></script>
<script src="/Scripts/bootstrap.js"></script>
...
<script src="/Scripts/page1.js"></script>
但是那个地方的html是空白的。
使用BundleTable.EnableOptimizations = true
,我看到了
<script src="/bundle/page1merged"></script>
但是观看网络流量,文件本身就是空的。
有没有人有解决方案让这项工作?今天,我的网站有许多不同的页面,每个页面使用独特的捆绑组合。我想找到一种方法将它组合成一个脚本包和每页1个css包,而不是让每个页面最多加载7个包。
如果有人也有替代解决方案,我会采取替代解决方案。