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



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

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

当前答案(更新 1/2016)

最初的答案(见下文)仍然有效;然而,自 2013 年以来,JavaScript 发生了很大变化。这种快速的变化甚至因 ASP.NET 5甚至不再具有捆绑而变得更加复杂。

我目前的解决方案是使用 JavaScript 工具为我进行捆绑和缩小。像Uglify这样的东西可以选择缩小,同时保留重要的标题注释。您可以将其与 Gulp、Grunt 等工具结合使用,以在构建、项目加载甚至按需触发此过程。这可以通过名为"Task Runner Explorer"的Visual Studio窗口来实现,该窗口内置于Visual Studio 2015中,可作为Visual Studio 2013扩展使用。

使用 JavaScript 工具进行缩小并不能解决 Bundleling 解决的缓存破坏问题。有JavaScript工具可以解决这个问题(即gulp-rev),但我不喜欢它们与 ASP.NET 一起工作的方式。在保持静态内容的高缓存期限的同时执行此操作的一种方法是在 URL 中使用某种哈希或指纹。Microsoft员工 Mads Kristensen 在他的个人博客上写了一篇关于如何在 ASP.NET 中执行这种缓存破坏的文章。

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

原始答案

作为后续,我使用的解决方案是使用 Bundle 而不是ScriptBundleStyleBundle,只是将所有第三方库(无论如何已经缩小)粘贴到一个捆绑包中。

我正要使用@Robert Havey对捆绑变压器的出色回答时,我意识到我可以在没有缩小的情况下通过并与所有第三方JS或CSS捆绑在一起。

最新更新