我注意到,當serve_static_assets
設置爲false時,heroku在Cedar注入一個rails3_serve_static_assets
中間件。我在這發現的所有內容都是this init script,它與Heroku部署中提及的名稱相匹配,並且所有這些都重新啓用了靜態資產的提供。Heroku Cedar - Static Assets - Rails 3.0.x
我試圖找到Heroku如何提供這些資源的更多信息,因爲它們似乎不是直接來自Rails應用程序。
當我看一個js文件的標題,例如,他們是這個樣子:
Age:0
Connection:close
Content-Encoding:gzip
Content-Type:text/css
Date:Sun, 08 Jan 2012 19:04:05 GMT
Last-Modified:Sat, 07 Jan 2012 23:43:30 GMT
Server:nginx/0.7.67
Transfer-Encoding:Identity
Via:1.1 varnish
X-Varnish:677359987
我假設Via:1.1 varnish
意味着這些資產正在通過光油送達,但the online documentation。在這件事上說,雪松沒有Varnish。
的對gzip壓縮的響應(底部)Cedar docs指出:
由於雪松的應用程序要求會直接傳送到應用服務器 - 通過像nginx的HTTP服務器不代理 - 反應的任何壓縮必須做在你的應用中。
但是我們可以清楚地看到資產是根據Content-Encoding
來gzip的。現在我相當確定 Rails 3.0.x沒有啓用Rack::Deflater
(它不會在rake middleware
中出現),所以我對這個資源是如何被gzip的有點困惑。
這是不大不小的預光標到my next question關於通過的Cloudfront服務這些資產,但在這裏,我的問題是:
有人能解釋到底是什麼在雪松再次發生:靜態資產。也就是說,服務我的資產(Rails,Ngnix,Varnish ??)和gzip'ng他們是什麼?
實際上,我們的應用指向了heroku域的A記錄,但是,只需閱讀他們的文檔,他們就會建議您使用CNAME。我會試試看。 – brad 2012-01-09 14:33:52
我會讀我的同事 - http://neilmiddleton.com/the-dangers-of-a-records-and-heroku/ – 2012-01-09 14:35:22
優秀,thx非常多 – brad 2012-01-09 17:18:18