ard*_*igh 5 capistrano ruby-on-rails nginx asset-pipeline
我正在构建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>
Run Code Online (Sandbox Code Playgroud)
资产文件似乎存在于共享目录中:
assay@assaypipeline:~/apps/assay/shared/assets$ ls application- a1b5d69aeaff709fd3dce163c559b38b.css
application-a1b5d69aeaff709fd3dce163c559b38b.css
Run Code Online (Sandbox Code Playgroud)
当我查看,源,然后单击指向资产路径的超链接时,我从Nginx中找不到404.
解
感谢Martin M(接受了答复)的帮助.我从服务器上的〜/ apps /(app name)/ current目录中采取的步骤.
$ bundle install
$ RAILS_ENV=production bundle exec rake assets:precompile
$ sudo service nginx restart
Run Code Online (Sandbox Code Playgroud)
显然,将它包含在Capistrano配方中会更好.
*编辑 - Capfile*
load 'deploy'
load 'deploy/assets'
load 'config/deploy'
Run Code Online (Sandbox Code Playgroud)
您的预编译资产应位于public/assets,请参阅Rails指南,
通常您可以通过运行来创建它们
RAILS_ENV=production bundle exec rake assets:precompile
Run Code Online (Sandbox Code Playgroud)
作为部署的一部分。
共享的内容是在多个部署中提供旧的内容。
另请参阅此问题
| 归档时间: |
|
| 查看次数: |
6940 次 |
| 最近记录: |