我正在将 ASP.NET 捆绑移动到我拥有的网站中,我注意到它正在从代码中删除所有注释,包括版权标题注释(在 CSS 和 JavaScript 中)。如果它是我的版权就可以了,因为我可以创建自己的IBundleTransform
版权并将我的版权添加到顶部,但使用第三方版权执行此操作并不理想。
有没有什么好的方法来保留这些版权标题(或者可能是我在 MSDN 文档中没有找到的标志)?谢谢!
我正在将 ASP.NET 捆绑移动到我拥有的网站中,我注意到它正在从代码中删除所有注释,包括版权标题注释(在 CSS 和 JavaScript 中)。如果它是我的版权就可以了,因为我可以创建自己的IBundleTransform
版权并将我的版权添加到顶部,但使用第三方版权执行此操作并不理想。
有没有什么好的方法来保留这些版权标题(或者可能是我在 MSDN 文档中没有找到的标志)?谢谢!
原始答案(见下文)仍然有效;然而,自 2013 年以来,JavaScript 发生了很大变化。这种快速变化甚至因 ASP.NET 5 甚至不再包含 Bundling 的事实而更加复杂。
我目前的解决方案是使用 JavaScript 工具为我进行捆绑和缩小。像Uglify这样的东西可以选择缩小,同时保留重要的标题注释。您可以将其与Gulp、Grunt等工具结合使用,以在构建、项目加载甚至按需触发此过程。这可以通过名为“Task Runner Explorer”的 Visual Studio 窗口来完成,该窗口内置于Visual Studio 2015 中,并作为 Visual Studio 2013 扩展提供。
使用 JavaScript 工具进行缩小并不能解决捆绑解决的缓存破坏问题。有 JavaScript 工具可以解决这个问题(即gulp-rev),但我不喜欢它们与 ASP.NET 一起工作的方式。在保持静态内容的高缓存期限的同时执行此操作的一种方法是在 URL 中使用某种散列或指纹。微软员工 Mads Kristensen在他的个人博客上写了一篇关于如何在 ASP.NET 中实现缓存破坏的文章。
此外,HTTP/2 以及如果您正在制作一个面向前方的网站,您将不希望/不需要像我们过去那样将脚本组合成捆绑包。
作为后续,我使用的解决方案是使用Bundle
而不是ScriptBundle
或StyleBundle
只是将所有第三方库(无论如何已经缩小)粘贴到一个包中。
当我意识到我可以不用缩小并与所有第三方 JS 或 CSS 捆绑在一起时,我正要使用 @Robert Havey 对Bundle Transformer的出色回答。