问题描述
我刚刚将我的第一个Rails应用程序部署到了生产环境中,但是遇到了错误:nginx无法提供我的资产.资产已编译并存在.名称正确,路径正确. Nginx向我发送了404错误,而不是资产.作为服务器,如果需要的话,我会使用Puma.
I've just deployed my first Rails app to production, but encountered error: my assets for some reason are not served by nginx. Assets are compiled and exist. Names are correct, paths correct. Instead of assets nginx sends me 404 error. As a server I use Puma if that matters.
我对该部分的配置如下:
My config for that part looks like this:
location ~* ^/assets/ {
# Per RFC2616 - 1 year maximum expiry
expires 1y;
add_header Cache-Control public;
# 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;
}
推荐答案
我找到了问题的根源.我正在使用Capistrano进行部署,因此在我的Nginx配置中,我给出了错误的根路径
I've found the source of problems. I am using Capistrano for deploy, so in my nginx config I gave wrong root path
server {
listen 80;
server_name mydomain.com www.mydomain.com;
root /var/www/my_portal/current/public;
我错过了根路径中的current
部分,导致Capistrano将其链接到我的应用程序的当前版本.
I missed current
part in the root path, cause Capistrano symlinked it to current release of my app.
这篇关于找不到Nginx + Rails 4资产的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!