0

我是捆绑新手,我有一个包含很多脚本文件的项目。

我正在使用捆绑包并面临大量内容的问题,这意味着我想设置包含大约 20 个文件的捆绑包,然后我只想从这个捆绑包中渲染一个文件或 3 个文件,而不是整个捆绑包内容(但也包含捆绑包配置,如缩小,...)。

我不想做很多捆绑

bundles.add(new ScriptBundle(~/bundles/file1).include(file1.js)); bundles.add(new ScriptBundle(~/bundles/file2).include(file2.js)); bundles.add(new ScriptBundle(~/bundles/file3_4).include(file3.js) .include(file4.js));

或使用普通方法调用脚本文件 <script src='something.js'></script>

任何想法都将受到高度赞赏。

4

2 回答 2

1

ASP.Net Bundler 不是动态的。捆绑包是在应用程序启动时计算的,因此您不能进行任何类型的选择性渲染。

如果您希望某些页面仅包含几个脚本,而某些页面包含更多脚本,则您需要为每个页面创建一个捆绑包。

不要那样做!

如果您担心包含不必要的脚本,那么您有两个选择:

1) 将所有脚本包含在一个包中

只有 20 个脚本,这不一定是一个糟糕的选择。它允许浏览器在第一页加载时缓存该文件,并且基本上在它更改之前永远不会再次请求它。这意味着每个其他页面的加载速度都非常快。

不利的一面是,只要单个脚本发生更改,您的整个捆绑软件就会失效并需要重新下载。同样,这是一次性成本。

2) 捆绑您的常用脚本,然后按页面包含单个脚本

这允许对更改频率较低的脚本(jQuery、下划线、角度等)进行优化。同时,您可以最大限度地减少可能在各个页面的版本之间更改的脚本的影响。

这意味着每页有更多的请求,但这些脚本应该更小,并且也会像其他所有内容一样被缓存。

您甚至可以为每个页面创建单独的包,这应该更易于维护,因为它们很可能只包含一两个脚本。

于 2013-11-12T12:08:33.360 回答
0

您可以通过在单个 include() 语句中包含所有 .js 文件来在 bundleConfig 中加载多个 javascript 文件 (.js)

bundles.add(
            new ScriptBundle(~/bundles/files).include(
            "file1.js",
            "file2.js",
            "file3.js));

或者

ScriptBundle scriptBndl = new ScriptBundle("~/bundles/bootstrap");    

//use Include() method to add all the script files with their paths 
scriptBndl.Include(
                   "~/Scripts/bootstrap.js",
                   "~/Scripts/respond.js"
                  );


//Add the bundle into BundleCollection
bundles.Add(scriptBndl);
于 2018-03-01T01:04:35.663 回答