Rails 4资产:预编译不工作Nginx + Thin配置

时间:2014-04-18 16:05:34

标签: ruby-on-rails ruby-on-rails-4 nginx thin

请帮帮我。 我在vps上有rails4 app runnig。

我在nginx配置中很瘦

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 /我可以看到编译的js css和图像像manydigits.png 但是当我访问我的网站时,资产中有404个

1 个答案:

答案 0 :(得分:2)

  location ~ ^/(assets)/{
     root /var/www/myapp.example.com/public;
     expires max;
     add_header Cache-Control public;
  }

nginx配置中的此代码修复了我的资产问题