我创建了一个新的ASP.NET 4.5.1 Web表单项目。
我使用过捆绑&先前在MVC 4中缩小了。
为什么root中有一个bundle.config文件 - 而App_Start中有一个BundleConfig.cs文件 - 这两个文件似乎都列出要捆绑的文件?
每个人为什么以及他们为什么做同样的事情?
这个问题在这里被问到但没有真正回答(即使它被标记为这样): Bundling resources via bundle.config vs BundleConfig.cs in ASP.NET 4.5 WebForms
答案 0 :(得分:4)
很多原因归结为您是喜欢使用代码还是使用标记,但每个都有一些特定于该方法的专业人员。
对于bundle.config,它实际上只有一个好处,但它是一个很大的好处。通过使用它,您可以管理捆绑包而无需触摸代码。这意味着您无需重新编译即可进行更改,从而使快速部署变得更加容易。此外,这意味着您最熟悉应该捆绑的文件的前端开发人员可以定义捆绑包,而无需使用任何后端代码。
但是,您在Bundle.config中可以指定的内容有很多限制。例如,您无法指定要应用于单个项目或捆绑包的任何自定义转换。您能够设置的唯一捆绑属性是Path
,CdnPath
和CdnFallbackExpression
。您无法设置Orderer
或EnableFileExtensionReplacements
属性。您无法包含包含所有子目录的目录(就像使用IncludeDirectory
方法一样)。基本上,有很多功能只能通过后端代码获得。当然,通过使用后端代码来检索bundle.config中定义的包,然后进行操作,可以设置很多这样的功能。但是,如果您要这样做,您也可以在后端创建捆绑包。
我的个人理念是使用Bundle.config,除非我需要对那些不可能的捆绑做一些事情。但是,我确信一些完全合理的人会不同意这一点。
对于同时具有这两者的Web窗体项目的默认VS模板,我猜测它只是为了证明这两个选项都可用,因为它在BundleConfig.cs中没有做任何事情也无法在Bundle.config中完成。