【问题标题】:gzip compression of assets on heroku doesn't work with custom domainheroku 上资产的 gzip 压缩不适用于自定义域
【发布时间】: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


【解决方案1】:

您需要将 use Rack::Deflater 添加到您的 config.ru 中,以便让 Heroku 提供压缩资源。

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

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

There is a good discussion 使用 Rack::Deflater 或其他替代方法在 Heroku 上提供压缩资产,但似乎人们不断回到 Rack::Deflater

【讨论】:

  • @laertiades,你的问题用这个解决了吗?遵循此答案后,我的自定义域仍然没有得到 gzip 压缩。
猜你喜欢
  • 1970-01-01
  • 2014-03-23
  • 2011-12-11
  • 2016-10-23
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多