web-dev-qa-db-ja.com

なぜpassenger_enabledを2回指定する必要があるのですか?

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ブロックですでに指定されているのに、なぜこれが必要なのかわかりません。

1

乗客の開発者によると、 これはnginxの問題です 、およびpassenger_enabled onはすべてのlocationブロックで指定する必要があります。

1