Ruby on Rails应用程序在生产环境中找不到样式表和javascript?

时间:2015-01-23 03:58:42

标签: ruby-on-rails nginx passenger assets

我使用Ruby on Railsubuntupassenger部署了nginx个应用,但是找不到我的cssjs个文件应用

以下是错误消息:

open() "/var/nginx/blog/public/stylesheets/application.css" failed (2: No such file or directory)

事实上,/var/nginx/blog/public/stylesheets/application.css实际上并不存在,我的js文件位于/var/nginx/blog/app/assets/javascripts/,我的css文件位于/var/nginx/blog/app/assets/stylesheets

在我的nginx.conf中,我写了这个:

location ~ ^/(assets|images|javascripts|stylesheets|system)/ {
    expires max;
    add_header Cache-Control public;
}

看来这是错误的地方!但我对此发表评论,仍然无法找到jscss。 如何配置获取这些文件?

2 个答案:

答案 0 :(得分:3)

也许您应该将资源放在public/文件夹中。你尝试预编译资产吗?

rake assets:precompile

答案 1 :(得分:2)

您应该在部署的远程服务器上运行RAILS_ENV=production bundle exec rake assets:precompile

assets:precompile rake任务压缩和最小化您的资产,以实现快速可靠的高负载生产使用。不需要在开发环境中运行此任务。

如果您可以展示您的部署脚本会更好。但是像capistrano这样的大多数部署解决方案都是自动完成的。