nginx + Rails 3.1 + Cloudfront资产子目录404缺失

时间:2012-01-04 15:11:58

标签: ruby-on-rails ruby-on-rails-3.1 nginx amazon-cloudfront

我正在使用Rails 3.1资产管道,该管道使用自定义源Cloudfront CDN提供。

这是我在nginx.conf中编写的,用于在gzip和缓存中提供资源:

                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;
            }

问题在于子目录,例如/ background /在我的图片资产文件夹中缺少404s的项目。

当我禁用上面的nginx位置配置时,问题消失了。如何正确配置nginx以提供子目录中的资产?

由于

1 个答案:

答案 0 :(得分: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;
}