为什么gzip在pub / static文件夹上不起作用?

时间:2018-09-18 10:10:23

标签: .htaccess gzip magento2.1

我当前正在运行Magento 2.1.14,并已根据Magento文档以及该网站上其他访问量较高的帖子启用了gzip。我还与托管服务提供商一道再次检查了在服务器端启用了Mod_deflate。

此外,我在本地计算机上拥有一个站点副本,该站点具有与实时服务器上相同的htaccess文件。

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

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

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

外面有没有人知道为什么gzip不会在我的文件树中瀑布并正确gzip pub文件夹中的js,缩小的js,css和缩小的css文件?

2 个答案:

答案 0 :(得分:0)

经过几天的调试,结果发现在我的实时服务器上,用于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提交问题。

答案 1 :(得分:0)

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

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

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

并以开始编辑行- AddOutputFilterByType DEFLATE

并添加内容类型-

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

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

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