2012-01-08 10 views
2

serve_static_assetsがfalseに設定されていると、herokuがrails3_serve_static_assetsミドルウェアをCedarに注入していることに気付きました。私が発見したのは、Herokuの展開で言及した名前と一致するthis init scriptであり、すべて静的資産の提供を再び有効にします。Heroku Cedar - Static Assets - Rails 3.0.x

私はHerokuがこれらの資産をどのように提供しているかについて、Railsアプリからまっすぐに出てくるようには見えないので、より詳しい情報を探しています。

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:私はJSファイルのヘッダを見てみると

は、例えば、彼らはこのようなものを見て。問題はワニスはシーダーでは入手できないと言います。

gzip圧縮された応答(下)上のCedar docsがあることを述べて:シーダーアプリケーションへの要求をアプリケーション・サーバーに直接作られているので

- nginxのようなHTTPサーバを介してプロキシではない - 応答のいずれかの圧縮が行われなければなりませんあなたのアプリケーション内で。

アセットがContent-Encodingに従ってgzipされていることがわかります。今私はかなり特定です Rails 3.0.xはRack::Deflaterを有効にしていません(とにかくrake middlewareには表示されません)ので、このアセットがどのようにgzipされているか混乱しています。

これは、CloudFrontを介してこれらの資産をサービスに関するmy next questionプリカーソルの一種であるが、ここで私の質問は:静的な資産:

誰かがシダーの再上で起こっている正確に何を説明することができます。すなわち、私の資産(Rails、Ngnix、Varnish ??)に何を提供しているのか、そしてそれらをgzip'ngしていますか?

答えて

3

あなたのヘッダーにワニスが表示されている場合は、CNAMEがproxy.heroku.comではなくproxy.herokuapp.comを指していることを意味します。Cedarにはワニスはありませんが、 proxy.heroku.comを使うと動作しますが、それは単なるパススルーです。彼らはnginxによって提供されます。

+0

私たちは実際にherokuドメインを指しているアプリ用のレコードを持っていますが、ドキュメントを読むだけで、CNAMEを使うことをお勧めします。私はそれを試してみる。 – brad

+1

私はこれを私の同僚によって読んでいます - http://neilmiddleton.com/the-dangers-of-a-records-and-heroku/ –

+0

優秀、thx非常に – brad

0

BambooスタックとCedarスタックの両方で使用されるスタックは、Cedarでワニスキャッシュがアクティブではないという点を除いて同じです。これは、Cedarがストリーミングをサポートしていることが原因です。これは、Varnishにはないストリーミングです。

したがって、あなたの資産はあなたのRailsプロセスからそのままです。 Rails 3.0では、これらは明らかに単純な古いファイルにすぎません。アセットパイプラインをRails 3.1で使用している場合は、rake assets:precompileプロセスによってgzippedバージョンのファイルが生成され、提供されます。

関連する問題