Rails 3.1でアセットパイプラインを使用するようにnginx.confを設定しようとしています。nginx1.0.10とPassenger3.0.11を使用しています。nginx.confは次のようになります。 :
server {
listen 80;
server_name .example.com
root /srv/project/public;
passenger_enabled on;
passenger_use_global_queue on;
# Assets shouldn't expire
location ~ ^/assets/ {
gzip_static on;
expires 10y;
add_header Cache-Control public;
add_header Last-Modified "";
add_header ETag "";
}
}
ただし、アセットにアクセスしようとすると、404エラーが発生します(もちろん、キャッシュにアクセスしている場合を除く)。 passenger_enabled on;
をlocation ~ ^/assets/
ブロックに追加するとこの問題が解決することがわかりましたが、server
ブロックですでに指定されているのに、なぜこれが必要なのかわかりません。
乗客の開発者によると、 これはnginxの問題です 、およびpassenger_enabled on
はすべてのlocation
ブロックで指定する必要があります。