Ruby on rails Rails 4资产:预编译不工作Nginx+;精简配置
请帮帮我。 我在vps上运行rails4应用程序 我在nginx配置中使用了thinRuby on rails Rails 4资产:预编译不工作Nginx+;精简配置,ruby-on-rails,ruby-on-rails-4,nginx,thin,Ruby On Rails,Ruby On Rails 4,Nginx,Thin,请帮帮我。 我在vps上运行rails4应用程序 我在nginx配置中使用了thin upstream myapp { server 127.0.0.1:3000; server 127.0.0.1:3001; server 127.0.0.1:3002; } server { listen 80; server_name .example.com; access_log /var/www/myapp.example.com/log/access.log; er
upstream myapp {
server 127.0.0.1:3000;
server 127.0.0.1:3001;
server 127.0.0.1:3002;
}
server {
listen 80;
server_name .example.com;
access_log /var/www/myapp.example.com/log/access.log;
error_log /var/www/myapp.example.com/log/error.log;
root /var/www/myapp.example.com;
index index.html;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
try_files /system/maintenance.html $uri $uri/index.html $uri.html @ruby;
}
location @ruby {
proxy_pass http://myapp;
}
}
这是我的生产环境设置
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = true
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = true
config.assets.precompile = ['*.js', '*.css', '*.css.erb']
在public/assets/i中,我可以看到编译后的js css和图像,比如manydigits.png
但当我访问我的站点时,资产中有404
location ~ ^/(assets)/{
root /var/www/myapp.example.com/public;
expires max;
add_header Cache-Control public;
}
nginx config中的这段代码修复了我的资产问题