【问题标题】:Why is gzip not working on pub/static folder?为什么 gzip 不适用于 pub/static 文件夹?
【发布时间】:2019-02-22 08:21:40
【问题描述】:

我目前正在运行 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 文件?

【问题讨论】:

    标签: .htaccess gzip magento2.1


    【解决方案1】:

    经过几天的调试,结果发现在我的实时服务器上,Set-Encoding 的 RequestHeader 被剥离了。这在我的本地机器上的 Apache 设置上没有发生。我的网络主机仍然没有给我解释为什么会发生这种情况,我也不知道它是否与 pub/static 目录中的 htaccess 文件有关,但添加了下面的 RequestHeader 集:

    <IfModule mod_headers.c>
    Header set X-UA-Compatible "IE=edge"
    Header set Connection keep-alive
    #THE LINE BELOW THIS COMMENT
    RequestHeader set Accept-Encoding "gzip, deflate, br"  
    <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$">
        Header unset X-UA-Compatible
    </FilesMatch>
    

    到我的 magento 站点根目录中的 htaccess 文件修复了压缩问题。

    如果这是服务器问题,我希望有人在下面评论我可能会通过我的虚拟主机提出什么来解决这个问题。否则,我将向 Magento github 提交问题。

    【讨论】:

      【解决方案2】:

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

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

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

      并以开始编辑行 - AddOutputFilterByType DEFLATE

      并添加内容类型 -

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

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

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

      【讨论】:

        猜你喜欢
        • 2022-09-25
        • 2016-11-03
        • 2012-11-18
        • 1970-01-01
        • 1970-01-01
        • 2018-04-12
        • 2021-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多