这种情况有点不寻常。但这里有一些想法:
- 我使用的过程与您引用的文章中的过程类似。
- 正如你所说,我只会创建一个应用程序。dev我会在您的文件夹中创建一个新的 git 存储库。
- 然后,我会推荐一种类似于此答案中描述的部署策略:https ://stackoverflow.com/a/8058194/267025 。我在下面对其进行了调整:
创建一个rake包含两个任务的文件:rake deploy:production和rake deploy:postprocess_files. 这些任务可能看起来像这样:
namespace :deploy do
  task :production do
    puts "turn on 'maintenance page' on heroku"
    system "heroku maintenance:on"
    puts "deploying to production"
    system "git push heroku-prod master"
    puts "post processing files..."
    system "heroku run rake production:postprocess_files"
    puts "take off maintenance page"
    system "heroku maintenance:off"
    puts "done"
  end 
  task :postprocess_files do
    puts "run postprocessing of files on heroku"
    ... add commands here to post process the files.
  end 
end
然后使用 git 部署到生产环境,rake deploy:production而不是直接使用 git 推送。rake 文件将:
- 设置维护页面,
- 推动生产,
- 对文件进行后处理,
- 取下维护页面。
请注意,文件中的第二个 rake 任务具有对文件进行后处理的命令,并被第一个 rake 任务调用以在 heroku上运行。
作为替代方案,您可以扩展 Heroku 作为每次部署的一部分运行的 assets:precompile 任务。无论如何,这基本上就是您正在做的事情——准备资产以部署到生产环境。