.htaccess - 为什么 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 文件?
解决方案
非常奇怪的问题,pub/static 的 .htaccess 中包含放气模式
bat 不适用于所有文件类型,javascript 文件未添加到设置中
所以,只需编辑pub/static/.htaccess
并使用 start 编辑行 - AddOutputFilterByType DEFLATE
并添加内容类型 -
text/javascript application/javascript application/x-javascript application/json image/svg+xml
现在,所有静态内容都将使用 gzip。
奇怪,为什么错过了这个,也许是其他功能?
推荐阅读
- regex - VBA RegEx 第二场比赛从第一场比赛开始
- javascript - 使用jquery获取tr中所选td的ID
- javascript - setState() 没有正确更新我的状态
- python - python selenium 使用 ActiveX 打开 InternetExplorer
- elasticsearch - 如何使用 DSL QUERY 在弹性搜索中验证输入值是否在范围内
- javascript - 仅在 AngularJS 中使用 ng-repeat 对 100 个结果中的 10 个结果进行排序
- c# - 在解决方案中复制项目并更新命名空间 - Visual Studio 2015
- composer-php - 不能在 php 7.3 中使用作曲家?
- maven - 带前缀的 ConfigurationProperties 不起作用
- android - 工具栏没有自动隐藏需要手动推送才能在recyclerview中滚动时隐藏