如何压缩我的 JavaScript 和 CSS 文件?

Posted

技术标签:

【中文标题】如何压缩我的 JavaScript 和 CSS 文件?【英文标题】:How can I gzip my JavaScript and CSS files? 【发布时间】:2011-02-09 14:27:00 【问题描述】:

我有一个问题,我必须 gzip 一个原型库,但我完全不知道如何做到这一点,从哪里开始以及它是如何工作的。 :)

我找到了一些教程,但没有帮助...

所以我有一个包含我的 JS 文件的文件夹:

/压缩/js/ 1.js 2.js 3.js

我正在调用这些文件以在此文件中进行测试

/compresses/index.php

<link rel="javascript" type="text/js" href="js/tabs.js" />
<link rel="javascript" type="text/js" href="js/fb.js" />

那我该怎么办? :)

【问题讨论】:

注意,没有 &lt;link rel="javascript"&gt; 这样的东西(很遗憾),也没有像 text/js 这样的 MIME 类型。 【参考方案1】:

您好,如果您使用的是 Nginx 服务器,上述内容将无济于事。请使用命令vi /etc/nginx/nginx.conf 编辑并添加以下行。

gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types    text/plain text/html text/css
          application/x-javascript text/xml
          application/xml application/xml+rss
          text/javascript;

使用命令 /etc/init.d/nginx reload 重启 nginx。它将压缩 JS 和 CSS 文件。

【讨论】:

经过多次尝试后,这对我有用......非常感谢。我还添加了一些类型,因为我的 js 需要 application/javascript:gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/vnd。 ms-fontobject 应用程序/x-font 应用程序/x-font-opentype 应用程序/x-font-otf 应用程序/x-font-truetype 应用程序/x-font-ttf 应用程序/xhtml+xml 字体/opentype 字体/otf 字体/ttf图片/svg+xml 图片/x-icon;【参考方案2】:

将此代码添加到您的 .htaccess 中,它将 gzip 您所有的 css 和 js 文件。

# BEGIN GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</ifmodule>
# END GZIP

【讨论】:

对不起,如果这是一个愚蠢的问题,但这就是我所要做的吗?我不需要手动压缩文件吗?只需将其粘贴在 .htaccess 中即可? 是的,这就是你所要做的!【参考方案3】:

我上面与此类似的示例效果很好,但没有压缩 javascript。我需要添加应用程序/javascript。

AddOutputFilterByType DEFLATE text/html text/xml text/css text/javascript application/javascript 

【讨论】:

【参考方案4】:

您可以使用 apache 的 mod_deflate 动态自动压缩文件。

例子:

AddOutputFilterByType DEFLATE text/html text/xml text/css text/javascript 

[编辑]

要检查您的 apache 服务器是否已启用输出压缩,请将上面的示例放入 .htaccess 文件中。然后通过服务器加载一个 html 或 js 文件并检查“Content-Encoding”的标题,如果它显示 gzip 或 deflate,则它已启用。

【讨论】:

在我的 htaccess 中?我需要准备我的 js 和 css 文件吗?压缩它们或像这样认为 您需要访问您的虚拟主机/服务器配置才能全局启用压缩。您无需准备文件,它们会根据要求自动压缩。 哦,如果启用了输出压缩,您可以在 .htaccess 中使用上面的示例。 @elias : Nginx 呢? 非常有帮助。很高兴看到我的个人网站主机默认启用了此功能。我需要看看 IIS 是否在幕后工作,我还想知道为什么某些 IDE 可以为您 GZIP 文件,以及将 GZIPed 文件上传到您的 FTP 有什么好处。在我对 IIS 的快速测试中(不能保证 Apache),你不能在 &lt;script&gt; 标签的一部分中使用 .js.gzip 并让它工作。我很好奇内部是如何工作的。【参考方案5】:

您需要使用您正在使用的 HTTP 服务器的配置来处理这些内容。

您能告诉我您使用的是哪个服务器吗? IIS/Apache ?

Following is link 用于使用 IIS 进行压缩

【讨论】:

【参考方案6】:

也许你应该看看 Apache 的 mod_deflate 模块:http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

【讨论】:

我需要以某种方式准备我的文件吗? 不,尽管缩小它们并不是一个坏主意;)

以上是关于如何压缩我的 JavaScript 和 CSS 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何组织 css 和 js 文件的压缩和打包以加快网站速度?

为 java/spring/maven 应用程序组合和压缩 javascript/css 的不显眼方式?

如何使用 Javascript 下载、压缩和保存多个文件并取得进展?

如何在 Amazon Beanstalk 和 Tomcat 上启用 HTML/JavaScript/CSS 的 gzip

缓存 gzip 压缩的 css

构建工具