我有一个在自定义域名的heroku上的应用程序。 www.mydomain.com拥有myapp.herokuapp.com的cname记录。 mydomain.com有一个301重定向到www.mydomain.com。我在Heroku Ceder堆栈上。我使用heroku_rails_deflate宝石启用了gzip压缩。对于使用www.mydomain.com的请求,服务器不会响应gzip资产。heroku上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 nameservers表明,两个不同的网址使用两个不同的IP地址,即使一个是另一个的cname(我不是DNS专家) ! *!
有没有办法让heroku对待不同的网址一样?如果没有,是否有可能让gzip为所有人工作?提前感谢您提供任何提示或解决方案。
什么是你的config.ru样子? – CDub
@CDub config.ru是默认的,我把它添加到 – laertiades