Nginx具有rails静态资产的多个位置

时间:2012-07-23 05:04:39

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

我是新手用nginx设置我自己的服务器所以原谅任何无知。我可能刚刚使用错误的搜索字词来查找我的问题的答案。

无论如何,我现在在机架空间的VPS上使用Rails 3,Nginx和Unicorn。在我的rails应用程序中,我有大约500mb的公共文件/我想使用Nginx来提供这些。通常这只是:

server {
  listen 80 default deferred;
  # server_name example.com;
  root /home/<my_user>/apps/<my_app>/current/public;
  ...
}

如果我将500mb公开添加到git repo然后使用capistrano进行部署,我可以完成这项工作,但我不希望所有这些文件都在我的git repo中。将它们存储在那里是没有意义的,但如果我删除它们,那么每次部署时我都必须手动将它们上传到服务器上的公共文件夹。

有没有办法让Nginx指向服务器的第二个资产文件夹?我尝试了以下方法:

location /static {
  gzip on;
  alias /home/deployer/static/;
}

我没有运气这么做(试图通过url.com/static / ...访问文件)任何人都知道我做错了什么?

附注:所有显示的代码都在我的config / nginx.conf文件中,它应该在我的deploy.rb中通过这一行覆盖设置:

sudo "ln -nfs #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{application}"

1 个答案:

答案 0 :(得分:3)

location /static/ {
    root /home/deployer;
}