如何组织CSS和JS文件的缩小和打包以加速网站?

12

我正在为我的网站应用程序进行速度优化并发现了一些实践方法。例如,来自Yahoo的加速您的网站的最佳实践

  • 压缩JavaScript和CSS。
  • 通过将多个文件(css、js)组合成一个文件来最小化HTTP请求的数量。

我的问题是,您使用或可以推荐使用什么基础架构、工具和构建过程来执行这些操作?


你可以尝试使用这个库 https://github.com/vincpa/mvc.resourceloader - Razor
12个回答

12

不错的网站,但是它对我来说显示的是Packer 3.1? - annakata
没错。但是Packer比YUI压缩器或JSMin慢多达1200倍。 - Gumbo
虽然这是压缩时间,但相对于同样缓慢的解压时间来说,它不那么重要。我猜这使得YUI成为全面最佳的答案,我可能会基于此进行切换。+1先生 - annakata
1
我不知道解压时间。但是我不想为了文件大小只有1或2%的增益而每次更改后等待长达10分钟才能压缩文件。 - Gumbo

2
你可以使用YUI压缩器

它可以压缩JavaScript和CSS。只需为所有文件运行它,然后将它们连接成一个“包”文件。你可以手动进行操作,编写Makefile或使用一些脚本来在Web请求“即时”压缩,尽管你可能想缓存结果文件。


2
雅虎的技巧非常好。我使用gomez来测试优化结果。缩小文件是一个好步骤。我发现,通过调整网页的组装方式(特别是减少切割图像的数量以减少请求量)通常可以产生更大的影响。无论如何,这个雅虎博客提供了一个相当不错的缩小工具概述。我通常会避免混淆,除非有一个超越相对较小的性能提升的强制原因。安装和使用缩小工具的实际步骤相对简单。

1

1

或者你可以直接配置你的HTTP服务器来对所有文本文件进行GZIP压缩。


我永远都搞不明白为什么有些人会对某些答案进行负评... 这个回答完全符合楼主的问题。 - Lawrence Dol
2
这个问题是关于缩小和打包的。同时进行这两个操作以及压缩将会提供最佳性能。 - Matt Lacey

1

我做ASP.NET,所以我使用CruiseControl.NET和NAnt进行构建过程。这个构建过程的一部分是使用YUICompressor进行压缩,根据我的经验,它是最好的压缩工具。

如果你不做ASP.NET,仍然可以使用原始的CruiseControl和Ant来完成同样的任务。

我认为这是一个优秀的设置的原因是:a)所有繁琐的事情都被自动化了;b)如果你在自己的机器上测试,你不必调试一个超长的JS字符串:)


1

我已经将缩小过程集成到我的部署流程中。我使用 JavaScript::MinifierCSS::Minifier 包在 perl 中实现。

在开发过程中,我希望保持脚本的扩展性。我在 HTML 中放置了一些注释,以便我的脚本知道要合并和缩小哪些文件:

<!--- MinifyJS[js/minified-1.js] -->
<script src="..."></script>
<script src="..."></script>
<!-- end[js/minified-1.js] -->

<!--- MinifyCSS[css/minified-1.css] -->
<link ...>

几个正则表达式,我很快就得到了一个带有压缩文件的“生产”版本。

0

我自己是Dean Edwards /packer/的忠实粉丝 - 有多种不同的版本可供选择。


Packer很酷。但是由于解压阶段的延迟运行,人们现在正在远离它。 - Nosredna
上次我进行基准测试时并没有显著的结果,但根据Gumbo的帖子,我会再次关注YUI。 - annakata

0

0

为了在上传到网络之前压缩所有内容,这个程序对于CSS/JS/HTML都非常好:

http://www.w3compiler.com/

甚至可以选择不压缩的区域,因为并非所有标记中的MVC代码都支持压缩。

每次压缩文件时,它都会保存备份文件,因此您只需单击即可轻松解压缩。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接