【发布时间】:2014-02-22 03:59:59
【问题描述】:
我在 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 重定向无法正常工作。现在,当我 curl 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 using opendns nameservers 显示两个不同的 url 使用两个不同的 ip 地址,即使一个是另一个的 cname(我不是 dns 专家) !*!
有没有办法让 heroku 对不同的网址一视同仁?如果没有,是否有可能让 gzip 为所有人工作?提前感谢您提供任何提示或解决方案。
【问题讨论】:
-
你的 config.ru 是什么样的?
-
@CDub config.ru 是默认的,我在上面加了
标签: ruby-on-rails heroku dns compression deflate