如何在 Heroku Cedar 上的 Rails 3.1.1 应用程序上获取 Gzip 和 Expires 标头?
我正在 Heroku Cedar 上运行 Rails 3.1.1 应用程序。默认情况下,此堆栈不会 Gzip 并设置资源上的过期标头。 有一些关于此的文档,但不是很清楚: http://devcenter.heroku.com/articles/http-routing
有人可以给我一段代码来激活它吗?
非常感谢
I'm running a Rails 3.1.1 application on Heroku Cedar. By default this stack doesn't Gzip and set Expires Headers on assets.
There is some doc about that, but it's not very clear : http://devcenter.heroku.com/articles/http-routing
Can somebody give me the piece of code to activate that ?
Thank you very much
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Cedar 不使用 Nginx,因此您必须使用 Rack::Deflater 自己对资源进行 gzip,如下所示:
您还可以直接在应用程序中设置静态文件的标头:
最后,您最好设置 Rack::Cache 取代 Varnish 缓存。请参阅这篇博文 了解更多信息。
Cedar doesn't use Nginx, so you have to gzip assets yourself with Rack::Deflater, like so :
Also you can set headers for static files directly in your app :
Finally you're probably better off setting up Rack::Cache to replace Varnish caching. See this blog post for more infos.
无耻插件 - 我创建了一个可以压缩的 gem,但避免压缩图像。
https://github.com/romanbsd/heroku-deflater
Shameless plug - I created a gem which enables compression, but avoids compressing images.
https://github.com/romanbsd/heroku-deflater
在
ActionDispatch::Static
之前尽早包含中间件非常重要It is important that the middleware be included early, before
ActionDispatch::Static