将ASP.NET捆绑设置为不删除第三方版权

时间:2013-11-05 22:03:36

标签: asp.net asp.net-mvc asp.net-mvc-4 minify bundling-and-minification

我正在将ASP.NET捆绑移动到我拥有的网站中,并且我注意到它正在删除代码中的所有注释,包括版权标题注释(在CSS和JavaScript中)。如果这是我的版权,那就没关系,因为我可以创建自己的IBundleTransform并将我的版权添加到顶部,但使用第三方版权进行此操作并不理想。

有没有什么好方法可以保留这些版权标题(或者可能是我在MSDN文档中没有说明的标志)?谢谢!

1 个答案:

答案 0 :(得分:3)

当前答案(2016年1月更新)

原始答案(见下文)仍然有效;然而,自2013年以来,JavaScript已经发生了很大变化。这种快速变化甚至更加复杂,因为ASP.NET 5甚至不再使用Bundling了。

我目前的解决方案是使用JavaScript工具为我进行捆绑和缩小。像Uglify这样的东西可以选择缩小,同时保留重要的标题注释。您可以将其与GulpGrunt等工具结合使用,以在构建,项目加载甚至按需时触发此过程。这可以通过名为“Task Runner Explorer”的Visual Studio窗口来完成,该窗口内置于Visual Studio 2015 and is available as a Visual Studio 2013 extension

使用JavaScript工具进行缩小并不能解决Bundling解决的缓存破坏问题。有一些JavaScript工具可以解决这个问题(即gulp-rev),但我不喜欢它们与ASP.NET一起工作的方式。在保持静态内容的高缓存时间的同时执行此操作的一种方法是在URL中使用某种散列或指纹。微软员工Mads Kristensen写了post about how one might do this caching busting in ASP.NET on his personal blog

此外,HTTP / 2如果你正在使网站面向前进,你将不希望/需要像我们以前那样在捆绑包中组合脚本。

原始答案

作为后续跟进,我使用的解决方案是使用Bundle而不是ScriptBundleStyleBundle,只是将所有第三方库(已经缩小了)放在一个包中。< / p>

当我意识到我可以在没有缩小的情况下完成并与所有第三方JS或CSS捆绑在一起时,我正准备使用@Robert Havey对Bundle Transformer的出色答案。