如何让Capistrano在部署中包含.htaccess文件?

时间:2010-06-04 05:12:49

标签: ruby-on-rails ruby deployment capistrano

我正在尝试让Capistrano部署我的网络应用程序。我正在通过Windows计算机使用remote_cache从git repo部署到Linux主机的php应用程序。除了没有复制.htaccess文件外,一切都正常部署。我是Capistrano和Ruby的新手,所以任何指针都会有所帮助!

Capistrano 2.5.18,在Windows上使用Ruby 1.8.6

3 个答案:

答案 0 :(得分:1)

首先手动删除htaccess,然后在每次部署时删除/符号链接

  desc "remove .htaccess"
  task :htaccess do
    run "rm #{path}/.htaccess"
    run "ln #{path}/.htaccess #{release_path}/public/.htaccess"
  end

答案 1 :(得分:0)

答案 2 :(得分:0)

这对我有用,但我在site5上,所以你的htaccess文件的内容可能会有所不同;我在deploy.rb文件的底部添加了以下内容:

after "deploy:create_symlink", "MYAPPNAME:htaccess_setup"


namespace :MYAPPNAME do
  task :htaccess_setup, :roles => :app do
    htaccess = "PATHTOMYPUBLICDIR/.htaccess"
    run "if [ ! -f #{htaccess} ]; then echo 'PassengerEnabled On' > #{htaccess}; echo 'PassengerAppRoot #{current_path}' >> #{htaccess}; echo '.htaccess created'; else echo '.htaccess already exists (untouched)'; fi"
  end
end