我正在尝试设置我的 nginx.conf 以使用 Rails 3.1 中的资产管道。我使用的是 nginx 1.0.10 和 Passenger 3.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
块中指定。