我正在构建一个 VPS,它通过 Capistrano、连接数据库等进行部署,但该页面没有可用的资产 - 它只是基本的 html。
资产似乎已编译,并存在于共享目录中。
从页面html:
<link href="/assets/application-a1b5d69aeaff709fd3dce163c559b38b.css" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/application-0ebd07089629f8c6880dddfb688d525d.js" type="text/javascript"></script>
资产文件似乎存在于共享目录中:
assay@assaypipeline:~/apps/assay/shared/assets$ ls application- a1b5d69aeaff709fd3dce163c559b38b.css
application-a1b5d69aeaff709fd3dce163c559b38b.css
当我查看、来源然后单击资产路径的超链接时,我从 Nginx 中得到一个 404 未找到。
解决方案
感谢 Martin M(已接受的答案)的帮助。我从服务器上的 ~/apps/(app name)/current 目录中采取的步骤。
$ bundle install
$ RAILS_ENV=production bundle exec rake assets:precompile
$ sudo service nginx restart
显然,最好将其包含在 Capistrano 食谱中。
*编辑 - Capfile *
load 'deploy'
load 'deploy/assets'
load 'config/deploy'