2012-01-04 15 views
2

私はカスタム起源のCloudfront CDNを使用して配信されるRails 3.1アセットパイプラインを使用しています。nginx + Rails 3.1 + Cloudfrontアセットサブディレクトリ404 missing

これは私がGZIPにし、キャッシュのために資産を提供するために、私のnginx.confで書かれたものです:

   location ^~ /assets/ { 
        allow all; 
        gzip_http_version 1.0; 
        gzip_static on; 
        expires 365d; 
        add_header Last-Modified ""; 
        add_header ETAg ""; 
        add_header Cache-Control public; 
      } 

問題は、例えばそのサブディレクトリであります/ images/background/inの画像のアセットフォルダに404の項目がありません。

上記のnginxの場所の設定を無効にすると、問題が解消されます。サブディレクトリ内のアセットを提供するためにnginxを正しく設定するにはどうすればよいですか?

おかげ

+0

あなたがこれを理解しましたか? – NudeCanalTroll

+0

戻ってくるのにしばらく時間をとって申し訳ありません。しかし、ええ、私は今日それを試して、それは正常に動作します!ありがとう。 – davicta

答えて

1

は、これが私の仕事:

location ~ ^/(assets)/  { 
    root /opt/appname/public; # or whatever the path is to your app's public folder 
    gzip_http_version 1.0; 
    gzip_static on; 
    access_log off; 
    expires 1y; 
    add_header Cache-Control public; 
    add_header Last-Modified ""; 
    add_header ETag ""; 
    break; 
}