C# 我们可以在asp.net捆绑中使用哪种文件

C# 我们可以在asp.net捆绑中使用哪种文件,c#,asp.net,bundling-and-minification,C#,Asp.net,Bundling And Minification,我想知道是否可以像这样在捆绑中添加ascx文件 bundles.Add(new ScriptBundle("~/bundles/First").Include( "~/Script/js.ascx")); 我想知道,因为假设在产品发布后我必须在捆绑中添加一个文件,那么我必须重新构建该文件。不,我们不能在捆绑中包含ascx文件我们只使用js和css文件进行捆绑……下面是我们为什么使用捆绑的一个小解释 随着Web应用程序变得越来越复杂,它所依赖的外部脚本

我想知道是否可以像这样在捆绑中添加ascx文件

  bundles.Add(new ScriptBundle("~/bundles/First").Include(
                    "~/Script/js.ascx"));

我想知道,因为假设在产品发布后我必须在捆绑中添加一个文件,那么我必须重新构建该文件。

不,我们不能在捆绑中包含ascx文件我们只使用js和css文件进行捆绑……下面是我们为什么使用捆绑的一个小解释

随着Web应用程序变得越来越复杂,它所依赖的外部脚本的数量会显著增加。从jQuery和一些应用程序库开始,比如Backbone.js(及其依赖项、下划线),然后从基础框架和一些表单验证脚本中插入插件,更不用说应用程序的代码本身了!你可以很容易地发现你的应用程序有几十个外部文件,每个文件都必须在每次页面刷新时加载

为了解决这个问题,开发人员通常使用名为“bundler”的工具,将脚本文件或样式表连接到一个文件中,从而减少通过Internet发送多个文件的I/O开销。许多人还执行一个称为“缩小”的过程,即删除不必要的空白,并将变量名更改为尽可能短的名称,从而生成一段不可读但高效的代码

ASP MVC为绑定提供了两个定制类:
ScriptBundle
,用于JavaScript文件,以及
StyleBundle
,用于CSS。这两个类都提供了内置的缩小功能,从而进一步减少了总负载。您需要为每个包指定一个唯一的路径

var myBundle = new ScriptBundle("~/bundles/js");
使用此捆绑包,您只需使用其方法添加新文件(或整个目录!):

完成每个bundle后,将其作为参数添加到传入的集合中

bundles.Add(myBundle);

继续此模式,直到您配置了所需的所有捆绑包。

我无法回答具体问题(尚未尝试),但要解决“问题”:

我想知道,因为假设我必须在产品发布后的捆绑中再添加一个文件,那么我必须为此重新构建

根据,您可以选择包括文件甚至目录..和通配符:

因此:

指:

  • 我的目标是文件夹
    /Scripts/edsf
  • 我希望指定目录中以
    “ed”
    开头的所有脚本都在脚本包中,例如。
    • edsf.js
    • edfoo.js
如果我向
/Scripts/edsf
目录添加一个新文件,
edbar.js
,它将自动绑定,您将看到版本字符串得到更新

不需要建造


Hth…

这并不能回答您是否可以引用捆绑包中的ascx文件的问题。
bundles.Add(myBundle);
BundleCollection bundles = BundleTable.Bundles;

bundles.Add((new ScriptBundle("~/bundle/custom")
     .IncludeDirectory("~/Scripts/edsf/", "ed*")));