rails提供与预编译清单不匹配的静态资产路径

时间:2012-12-04 18:57:03

标签: ruby-on-rails-3 nginx unicorn

我已经尝试阅读有关如何正确配置nginx以为rails 3.2提供静态资产的许多其他问题,但无论我尝试浏览器加载的资产路径与manifest.yml中指定的资产版本不匹配在预编译之后,因此找不到我的所有资产。

我的nginx配置如下:

location ~ ^/assets/ {    

    # Per RFC2616 - 1 year maximum expiry
    # http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
    expires 1y;
    add_header Cache-Control public;

    gzip_static on;

    # Some browsers still send conditional-GET requests if there's a
    # Last-Modified header or an ETag header even if they haven't
    # reached the expiry date sent in the Expires header.
    add_header Last-Modified "";
    add_header ETag "";
    break;
}

我还检查了nginx中的根路径是否正确。我通过Unix Domain Socket使用nginx和unicorn。

我第一次设置好这一切都很好。然后我修改了一个资产并重新部署。那资产随后被打破了。然后我碰到了资产版本,现在所有资产都被打破了。我已经尝试清除我的本地缓存,以防引起问题,但没有帮助。

我现在开始撕掉我的头发,任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

经过更多调查后,我发现更新时unicorn进程没有正确重启。