5

到目前为止,我一直在使用 MS Ajax Minifier 来压缩和组合我的 CSS 和 JS。我的服务器设置了很远的未来过期标头,所以我需要一个缓存过期策略。目前,我正在通过更改文件名手动对这些项目进行版本控制,以便它们在每个版本中过期。

我想稍微自动化一下,特别是通过将文件内容的哈希附加到压缩的文件名上。如果我们可以用这个更新的文件名更新一些配置 XML(存在于不同的项目中)文件,那么奖励积分

我们正在使用 TFS 构建服务器,所以我想这应该包含在 MSBuild 任务中?或者我可以让它作为预/后期构建项目步骤运行吗?

如果有人在这方面有任何他们乐于分享的知识,将不胜感激。

谢谢

4

2 回答 2

3

当然,您可以通过 MSBuild 完成所有操作:

于 2013-01-19T00:47:45.983 回答
2

您是否考虑过 System.Web.Optimization 中的捆绑和缩小功能?

http://blogs.msdn.com/b/rickandy/archive/2012/08/14/adding-bundling-and-minification-to-web-forms.aspx

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

它应该可以满足您的所有需求,而无需 msbuild 维护麻烦。

它不会触及原始文件并更改每个构建的捆绑散列。此外,它可以在直播站点上以编程方式关闭,以允许在直播站点上调试 css 和 js,并保留所有原始文件名和注释。

我们非常成功地使用它,我鼓励 UI 程序员将 css 和 javascript 文件拆分为更小且更具逻辑命名的文件,并在其中留下更多的注释以用于文档。最终用户最终将始终获得单个 css 和 js,每个构建具有不同的名称。

于 2013-01-24T19:06:27.630 回答