2009-05-19 82 views
6

在ASP.NET中是否有任何本机压缩(对于JavaScript/css文件)?ASP.NET - 脚本和CSS压缩

+0

什么样的压缩:缩小/打包还是gzip/deflate? – 2009-05-19 14:04:34

+0

缩小/打包与gzip/deflate之间的区别不确定。我在寻找的是asp.net压缩脚本和css文件的一些本地方式,以便从服务器请求的实际文件更小。 – 2009-05-19 14:15:53

回答

4

Professional ASP.NET 3.5的附录中Scott Hanselman谈到了Packer for .NET。这将与MSBuild集成并为生产部署包装JavaScript文件等。

+0

看起来我们同时发布了相同的答案:-) – 2009-05-19 14:14:09

+0

看起来Packer是.NET中最接近原生压缩的东西。 – 2009-05-19 14:26:27

4

您可以使用Packer

此utlity支持JavaScript压缩和/或“缩小”和CSS“缩小”。

它可以作为命令行工具使用,也可以作为MSBuild任务使用。 这种方式可以将它集成到您​​的构建过程/ Visual Studio项目中。

+0

伟大的思想想象一样;-) – RedWolves 2009-05-19 14:25:44

1

除了其他答案和评论,您可以使用Yahoo!的YUI Compressor并将其设置为MSBuild Task以将其集成到您的构建和部署过程中。

1

尝试StyleManager对CSS的组合和缩小。它使用YUI压缩机。

它的用法和asp.net的ScriptManager非常相似,所以它很快就适应了。添加到您的项目也很容易,只需要一分钟。

最重要的是 - 它也结合了你的CSS文件。所以,而不是像10 CSS文件下载它只会是1,这也将被压缩等。

0

这是我的方式: 使用MVC。 通过MVC控制器的动作处理js | css内容。 将多个文件组合成一个文件。 在存储到缓存之前,将脚本| css动态缩小并进行混淆处理。 缓存结果。 使用CacheDependency。 为动态内容启用gzip。 在缓存功能之前启用gzip。

只需在操作方法上添加自定义属性,即可使用ASP.NET MVC Js/Css Composer/Compressor来完成所有操作。

样品:

public class JsController : Controller 
{ 
    [Utility.Processors.JsCompress] 
    [OutputCache(Duration = 3600)] 
    public ActionResult Jquery() 
    { 
     return View(); 
    } 
} 

您可以从CustomTextPostProcessingAttribute派生,使自己的后处理任何类型的文本内容,你所需要的。

0

我今天刚学到东西:你可以跑JavaScript via windows console。我是cssmin.js的粉丝;所以,这加上Windows控制台=赢!所有你需要做的就是下载cssmin.js,把它放在一个文件夹中的Web项目并添加以下生成后事件在Visual Studio:

type "$(ProjectDir)css\*.css" | cscript //NoLogo "$(SolutionDir)tools\cssmin.js" > "$(ProjectDir)css\core.min.css" 

不必修改项目这样做可以让你as ajaxmin would have you to do