首页 > 解决方案 > 为什么 gzip 不适用于 pub/static 文件夹?

问题描述

我目前正在运行 Magento 2.1.14,并已根据 Magento 文档以及该站点上其他访问量很大的帖子启用 gzip。我还与我的托管服务提供商一起检查了是否在服务器端启用了 Mod_deflate。

此外,我在我的本地机器上有一个我的站点的副本,其中包含与我们的实时服务器上相同的 htaccess 文件。

在我的本地机器上,只需启用 apache 模块,然后在 public_html 目录的主 htaccess 文件中添加 htaccess 代码即可。我本地站点上的所有请求都显示包含“内容编码:gzip”的标题。

但是,当在我们的服务器上使用 https 时,gzip 编码似乎停止在 pub 目录。没有来自 pub 目录(pub/static 和 pub/media)的内容显示和 gzip 编码。我的本地机器和实时服务器上的文件是相同的。根据我的托管服务提供商的说法,他们启用了 gzipped,他们认为这与我的文件树中阻止 gzip 编码发生的 htaccess 文件之一有关。

我也做了一个我们的托管服务提供商推荐的小测试,并尝试在我的本地机器和实时服务器上的 public_html 目录中设置一个额外的目录来测试 gzip 编码是否可以工作。在我的本地机器上,我可以访问该目录并且其中的文件显示 gzip 压缩,但是在我的实时服务器上,当将文件添加到我的 public_html 目录并尝试通过浏览器访问它时,Magento 会抛出 404 错误!

有没有人知道为什么 gzip 不会穿过我的文件树并正确地 gzip 位于 pub 文件夹中的 js、缩小的 js、css 和缩小的 css 文件?

标签: .htaccessgzipmagento2.1

解决方案


非常奇怪的问题,pub/static 的 .htaccess 中包含放气模式

bat 不适用于所有文件类型,javascript 文件未添加到设置中

所以,只需编辑pub/static/.htaccess

并使用 start 编辑行 - AddOutputFilterByType DEFLATE

并添加内容类型 -

text/javascript application/javascript application/x-javascript application/json image/svg+xml

现在,所有静态内容都将使用 gzip。

奇怪,为什么错过了这个,也许是其他功能?


推荐阅读