我想知道是否可以像捆绑
一样添加ascx文件 bundles.Add(new ScriptBundle("~/bundles/First").Include(
"~/Script/js.ascx"));
我想知道,因为假设我必须在产品发布后再捆绑添加一个文件,然后我必须再次构建。
答案 0 :(得分:2)
不,我们不能在捆绑包中包含ascx文件我们只使用js和css文件进行捆绑...这里有一个小解释为什么我们使用捆绑包
随着Web应用程序变得越来越复杂,它所依赖的外部脚本的数量也会显着增加。从jQuery和一些应用程序库开始,比如 Backbone.js(及其依赖项,Underscore),然后从基础知识和一些表单验证脚本等UI框架中插入插件 - 更不用说应用程序的代码本身! - 并且您可以轻松发现您的应用程序有许多外部文件,每个文件都必须在每次刷新页面时加载。
为了解决这个问题,开发人员经常使用名为“bundlers”
的工具,它将脚本文件或样式表 - 连接在一起成为一个文件,从而减少了在Internet上发送多个文件的I / O开销许多人还执行一个称为“缩小”的过程,从而删除非必要的空格,并将变量名称更改为尽可能短,从而产生一个不可读但高效的代码片段。
ASP MVC提供了两个定制的类,用于捆绑 :ScriptBundle
用于JavaScript文件,StyleBundle
用于CSS。这两个类都提供内置缩小功能,从而进一步降低了总有效负载。您需要为每个捆绑包指定唯一的路径。
var myBundle = new ScriptBundle("~/bundles/js");
使用此捆绑包,您只需使用其方法添加新文件(或整个目录!):
myBundle.IncludeDirectory("~/js/vendor/");
myBundle.Include("~/js/app.js");
完成每个捆绑包后,将其添加到作为参数传入的集合中
bundles.Add(myBundle);
继续此模式,直到您配置了所有您想要的包。
答案 1 :(得分:1)
我无法回答具体问题(没有尝试过),但要解决问题":
我想知道,因为假设我必须在产品发布后再捆绑添加一个文件,然后我必须再次构建。
根据docs on bundling,您可以选择包含文件甚至目录和通配符:
所以:
BundleCollection bundles = BundleTable.Bundles;
bundles.Add((new ScriptBundle("~/bundle/custom")
.IncludeDirectory("~/Scripts/edsf/", "ed*")));
意思是:
/Scripts/edsf
"ed"
开头的所有脚本都在脚本包中,例如:
如果我将新文件edbar.js
添加到/Scripts/edsf
目录,它将自动捆绑,您将看到版本字符串更新。
无需建立......
... H个