Ruby Rails 应用程序在生产环境中找不到样式表和 javascript?
Ruby on Rails application can not find stylesheets and javascript in production environment?
我在 ubuntu
中使用 passenger
和 nginx
部署了一个 Ruby on Rails
应用程序,但找不到 css
和 js
文件在我的申请中。
错误信息如下:
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;
}
看来这里是错误的地方!但是我评论这个,它仍然找不到js
和css
。
我如何配置以获取这些文件?
也许您应该将您的资产放在 public/
文件夹中。您是否尝试预编译资产?
rake assets:precompile
您应该 运行 RAILS_ENV=production bundle exec rake assets:precompile
在您部署的远程服务器上。
assets:precompile
rake 任务压缩和最小化您的资产,以实现快速可靠的高负载生产使用。不需要在您的开发环境中 运行 此任务。
如果能展示一下部署脚本就更好了。但是像 capistrano 这样的大多数部署解决方案都会自动正确地做这些事情。
我在 ubuntu
中使用 passenger
和 nginx
部署了一个 Ruby on Rails
应用程序,但找不到 css
和 js
文件在我的申请中。
错误信息如下:
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;
}
看来这里是错误的地方!但是我评论这个,它仍然找不到js
和css
。
我如何配置以获取这些文件?
也许您应该将您的资产放在 public/
文件夹中。您是否尝试预编译资产?
rake assets:precompile
您应该 运行 RAILS_ENV=production bundle exec rake assets:precompile
在您部署的远程服务器上。
assets:precompile
rake 任务压缩和最小化您的资产,以实现快速可靠的高负载生产使用。不需要在您的开发环境中 运行 此任务。
如果能展示一下部署脚本就更好了。但是像 capistrano 这样的大多数部署解决方案都会自动正确地做这些事情。