Mamp - 让 Gzip 工作

Posted

技术标签:

【中文标题】Mamp - 让 Gzip 工作【英文标题】:Mamp - Getting Gzip to work 【发布时间】:2017-12-09 08:57:15 【问题描述】:

如何让 gzip 在 MAMP 中的 Wordpress 网站设置上工作?

我已经 gulp 创建文件 /dist/css/main.css.gz 并将其添加到我的 wordpress 网站的 php 头文件中。

然后我失去了所有的样式。我假设这是因为我没有在我的.htaccess 中启用它?所以我找到以下代码添加到我的.htaccess

<IfModule mod_deflate.c>
# Compress html, CSS, javascript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml

# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>

它仍然不起作用。

【问题讨论】:

【参考方案1】:

我不确定您为什么要将文件存储为 gzip 存档,但这不是这样做的方法。 AddOutputFilterByType DEFLATE text/css 将在发送前压缩文件。要解压缩现有文件,可以使用类似这样的方法(使用 2.2 测试):

<Directory />
        AddOutputFilter INFLATE gz
        RemoveType .gz
        AddType text/css .css.gz
</Directory>

测试输出:

$ echo "body color:black; background:white;" > foo.css
$ gzip foo.css
$ curl http://localhost/foo.css.gz
body color:black; background:white;
$ curl -I http://localhost/foo.css.gz
HTTP/1.1 200 OK
Date: Fri, 07 Jul 2017 23:01:22 GMT
Server: Apache/2.2.15 (Scientific Linux)
Last-Modified: Fri, 07 Jul 2017 22:59:22 GMT
Content-Length: 38
Content-Type: text/css
$

当然,这会影响您提供实际 gzip 文件的能力,并且您需要为每个压缩文件手动指定 MIME 类型。

此外,如果您正在控制服务器,则不应使用 .htaccess 文件。它们速度慢并且存在安全风险。把它放在服务器配置中!

【讨论】:

以上是关于Mamp - 让 Gzip 工作的主要内容,如果未能解决你的问题,请参考以下文章

如何在本地Mamp服务器上安装gzip mysqldump

无法让 MAMP 与虚拟主机一起使用

没有端口的本地名称解析 - MAMP Pro

MAMP 本地主机不工作

IIS 上的 Gzip 压缩 - 无法正常工作

如何让 gzip 压缩在 WCF 4.5 中工作