Asp.net mvc ASP.NET MVC的CSS和JavaScript文件的组合、最小化和gzip

Asp.net mvc ASP.NET MVC的CSS和JavaScript文件的组合、最小化和gzip,asp.net-mvc,gzip,minimize,Asp.net Mvc,Gzip,Minimize,你好 我正在寻找合并、最小化和gzip CSS和JavaScript文件的解决方案。它们似乎有两种形式: 以ASP.NET handler\module的形式动态处理文件(带有缓存结果) 以VS构建任务的形式(在构建时执行处理) 一般来说,我都同意 我已经看过很多解决方案(我经常使用本文中的ASP.NET处理程序),但可能出现了一些“必须”的东西,而我错过了它 提前谢谢 我正在为中小型网站使用。使用NuGet添加和配置很简单。我给你的建议是:使用构建任务和HTTP缓存输出 在构建任务方面,您

你好

我正在寻找合并、最小化和gzip CSS和JavaScript文件的解决方案。它们似乎有两种形式:

  • 以ASP.NET handler\module的形式动态处理文件(带有缓存结果)
  • 以VS构建任务的形式(在构建时执行处理)
一般来说,我都同意

我已经看过很多解决方案(我经常使用本文中的ASP.NET处理程序),但可能出现了一些“必须”的东西,而我错过了它


提前谢谢

我正在为中小型网站使用。使用NuGet添加和配置很简单。

我给你的建议是:使用构建任务和HTTP缓存输出

在构建任务方面,您需要检查您最喜欢的JavaScript迷你程序(我最喜欢的是),它有一个命令行实用程序,您可以将它插入到项目文件、MSBUILD文件或NANT文件中。同样处理CSS(我个人使用)。如果你开始使用,你当然可以把它和YUI压缩机结合起来。为了优化图像,我会使用。这里有关于这些人如何在他们各自的网站上工作的指导

现在,在您对这些文件进行了良好的优化之后,您将希望使用MVC的处理程序或控制器操作来输出它们。要设置过期时间,以便后续请求将默认为第一次请求时下载的文件,您需要在代码中运行:

Response.ExpiresAbsolute = DateTime.Now.AddYears(1);
很可能您需要一个缓存buster策略,以便可以更改内容文件。您可以通过向处理程序传递一个随机参数来实现这一点。有几种不同的方法可以做到这一点。。。只需谷歌一下

希望这能有所帮助。

Moth可以(除其他外)动态处理所有javascript/css请求。看


最棒的是,它还可以将所有javascript放在页面底部,包括您在部分视图中编写的部分

谢谢你的回复,你是说这部分吗?对Web资产管理器处理所有这些。我正在使用它的开源版本。感谢您的回复,我已经花了很多时间手工组装这样的管道来处理CSS和JS(对于ASP.NET和PHP),您看到任何捆绑包/组件了吗?@artvolk“捆绑包/组件”是什么意思?我指的是什么(库?dll?msbuild任务?)它以一种很好的方式将所有这些打包到VS中。使用MSBUILD中的Exec任务调用各种可执行文件来进行优化。您可以在项目文件(使用MSBUILD)的BeforeBuild目标中执行此操作。例如,YUI压缩机如下所示: