God*_*han 8 caching assets heroku ruby-on-rails-3.1
即使我已经掠夺资产:预编译我的所有资产,我似乎仍然很难让heroku正确地缓存它们.我不断得到类似的东西
2011-06-04T16:40:20+00:00 app[web.1]: cache: [GET /assets/application-516c0fa9926527ab92d849148e557ee6.css] stale, invalid, store
2011-06-04T16:40:22+00:00 app[web.1]: cache: [GET /assets/logo-3a84e73bd76ca1ab9629d0a92eac7d4f.png] stale, invalid, store
Run Code Online (Sandbox Code Playgroud)
从我的日志.虽然我用firebug检查时似乎得到了一个HTTP 304.我做错了吗?
这篇博文有很好的答案和几个选项.博客文章看起来并不严肃,但这是推荐阅读.
完整网址:http: //jimmycuadra.com/posts/the-challenge-of-asset-packaging-on-heroku
让Varnish缓存并将其作为静态内容提供是非常棒的,不需要预编译的rake任务.
更新2012年3月20日
世界变化很快.heroku的Cedar堆栈就是为此而建的.heroku create myapp --stack cedar请记住在application.rb中添加这行代码以在deploy上进行编译.
config.assets.initialize_on_precompile = false
Run Code Online (Sandbox Code Playgroud)
/ UPDATE
对于登陆这里并运行自己的 nginx 的人,您可以这样做:
location ~ "^\/assets\/[^.]+-[a-z0-9]{32}\." { expires max; }
Run Code Online (Sandbox Code Playgroud)
但这对我们在 Heroku 上没有帮助:-)
另一方面,经过一番研究后,我将只使用 CDN。然后,我将使用 config.action_controller.asset_host 配置我的应用程序。
Heroku 再次让采用最佳实践变得更加容易!
| 归档时间: |
|
| 查看次数: |
3099 次 |
| 最近记录: |