les*_*sce 4 amazon capistrano ruby-on-rails amazon-ec2 sprockets
我最近将turbo sprockets gem https://github.com/ndbroadbent/turbo-sprockets-rails3添加 到我的rails应用程序中,我使用capistrano部署到Amazon EC2.
我对如何使这项工作感到有点困惑.assets:precompile在我的本地机器上运行,但在亚马逊实例上却没有.
长话短说明capistrano为每个部署创建一个新的发布目录,并且public/assets目录为空,因此每次创建新目录时和运行资产时:预编译它会预编译所有资产.
我应该预先编译localy并将它们添加到git中,或者在capistrano运行资产之前复制上一次部署中的public/assets目录:precompile?
最干净/最佳实践解决方案是什么?
/编辑或者可能将编译后的资产保存在共享目录中?
我能想到的最简单的解决方案是使用shared/assets目录来存储我的资产,并在编译资产之前创建一个指向发布public/assets目录的符号链接.
task :assets_precompile do
run "ln -s #{shared_path}/assets #{release_path}/public/assets"
run "cd #{release_path} && RAILS_ENV=production bundle exec rake assets:precompile"
end
Run Code Online (Sandbox Code Playgroud)
编辑:Anjan指出,如果你使用deploy:assets(如果你load 'deploy/assets'在你的Capfile中)这是默认完成的,这是一个更清洁的解决方案.
| 归档时间: |
|
| 查看次数: |
1282 次 |
| 最近记录: |