【发布时间】:2011-09-06 04:17:14
【问题描述】:
试图掌握部署 rails 3.1 应用程序的窍门 ...
根据我阅读的内容,我在 deploy.rb 中添加了以下代码:
before "deploy:symlink", "assets:precompile"
namespace :assets do
desc "Compile assets"
task :precompile, :roles => :app do
run "cd #{release_path} && rake RAILS_ENV=#{rails_env} assets:precompile"
end
end
但说实话,我看不出有没有它有什么区别。我这里有什么遗漏吗?
EDIT* 找到了答案:
要为生产预编译资产,您通常会执行以下 rake 任务(在生产服务器上)。
$ bundle exec rake assets:precompile 这会将所有资产写入 public/assets 目录,同时在文件名中包含 MD5 指纹以增加缓存优势。
注意:在生产中,使用 image_tag、asset_path、javascript_include_tag 等的视图对资产的所有引用都会自动在文件名中包含此指纹,以便提供正确的版本。
【问题讨论】:
标签: deployment capistrano ruby-on-rails-3.1