繁体   English   中英

heroku上的资产的gzip压缩不适用于自定义域

[英]gzip compression of assets on heroku doesn't work with custom domain

我在heroku上有一个带有自定义域的应用程序。 www.mydomain.com拥有myapp.herokuapp.com的cname记录。 mydomain.com有301重定向到www.mydomain.com。 我在Heroku Ceder堆栈上。 我使用heroku_rails_deflate gem启用了gzip压缩。 对于使用www.mydomain.com的请求,服务器不会使用gzip资产进行响应。

*编辑* * *当我最初发布我的301重定向时,无法正常工作。 现在,当我卷曲mydomain.com时,我得到301响应。


curl -I -H 'Accept-Encoding: gzip' http://myapp.herokuapp.com/assets/application-7cbaf74d14cc5a5ab54262a43e4xxxxx.css 

curl -I -H 'Accept-Encoding: gzip' http://mydomain.com/assets/application-7cbaf74d14cc5a5ab54262a43e4xxxxx.css

两者都导致:

Age: 1390
Cache-Control: public, max-age=2592000, no-transform
Content-Encoding: gzip
Content-length: 19377

然而

curl -I -H 'Accept-Encoding: gzip' http://www.mydomain.com/assets/application-7cbaf74d14cc5a5ab54262a43e4xxxxx.css

结果是:

Age: 7378
Cache-Control: public, max-age=2592000
Content-length: 119016

此外,机架缓存似乎为每个URL维护一个单独的缓存。 日志显示:

cache: [HEAD /assets/application-7cbaf74d14cc5a5ab54262a43e4xxxxx.css] miss, store

对于使用myapp.herokuapp.com已经为同一资产提供新请求后的顶级域请求

编辑:这是我的config.ru:

require ::File.expand_path('../config/environment',  __FILE__)
run Rails.application

** 另一个加法 *** nslookup使用opendns名称服务器显示两个不同的URL使用两个不同的IP地址,即使一个是另一个的cname(我不是dns专家)! *

有没有办法让heroku对待不同的网址? 如果没有,是否有可能让gzip为所有人工作? 提前感谢任何提示或解决方案。

你需要在你的config.ru中添加use Rack::Deflater ,以便让Heroku提供压缩资产。

你的config.ru看起来像这样:

require ::File.expand_path('../config/environment',  __FILE__)
use Rack::Deflater
run Rails.application

有关使用Rack::Deflater或其他替代方案以便在Heroku上提供压缩资产的讨论很好 ,但似乎人们不断回到Rack::Deflater

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM