【发布时间】:2017-09-13 18:42:18
【问题描述】:
我在使用 Apache (2.4) 的重写规则来提供压缩文件时遇到问题。
我的 javascript 捆绑过程会为它创建的每个 .js 生成 .gz 文件。我已经在 apache a2enmod rewrite 上激活了重写模块,并像这样设置 .htacess 文件:
AddEncoding gzip .gz
RewriteEngine on
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule "^(.*)\.js" "$1\.js\.gz" [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-gzip:1]
<FilesMatch ".+\.(js\.gz)$">
Header append Content-Encoding gzip
Header append worked yes
</FilesMatch>
我遇到的问题是:
- 第一个条件
RewriteCond %{HTTP:Accept-encoding} gzip永远不会计算为真。在 Chrome 开发人员工具上,客户端发送此标头Accept-Encoding:gzip, deflate, br(我尝试将 gzip、deflate、br 添加到条件中,但它不起作用); - 即使我消除了上述条件,我也无法在 Chrome 开发工具中看到标题
Content-Encoding; - 我在响应标头中看不到
Content-length。但它会回复Transfer-Encoding:chunked,我觉得这很奇怪;
这些是在我的 apache 上启用的模块(我认为它们在我的 ubuntu dist 中默认启用,因为我没有激活其中任何一个)
access_compat.load authz_user.load filter.load rewrite.load
alias.conf autoindex.conf headers.load setenvif.conf
alias.load autoindex.load mime.conf setenvif.load
auth_basic.load deflate.conf mime.load status.conf
authn_core.load deflate.load mpm_event.conf status.load
authn_file.load dir.conf mpm_event.load
authz_core.load dir.load negotiation.conf
authz_host.load env.load negotiation.load
【问题讨论】:
标签: javascript apache .htaccess mod-rewrite