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

Ruby on Rails application can not find stylesheets and javascript in production environment?

我在 ubuntu 中使用 passengernginx 部署了一个 Ruby on Rails 应用程序,但找不到 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。 我如何配置以获取这些文件?

也许您应该将您的资产放在 public/ 文件夹中。您是否尝试预编译资产?

rake assets:precompile

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

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

如果能展示一下部署脚本就更好了。但是像 capistrano 这样的大多数部署解决方案都会自动正确地做这些事情。