繁体   English   中英

在子目录中将Rails 4.1部署到Heroku?

[英]Deploying Rails 4.1 in a subdirectory to Heroku?

我有一个像下面这样的目录结构:

my-app/
  .git/
  db/    <-- Database stuff
  lib/   <-- Business logic
  spec/
  web/   <-- Rails

Rails位于存储库的web/子目录中。 Heroku默认不喜欢这个。

我有一个部分工作的heroku buildpack 在运行任何任务之前,它基本上调用Dir.chdir来更改为APP_SUBDIR环境变量(如果存在)。

我想部署到Heroku,但我无法让资产管道任务工作。 在预编译资产时,定制的buildpack将更改为web/目录并尝试运行该任务。

但是, 我得到了这个错误 ,有以下重要的一点:

Could not detect rake tasks
ensure you can run `$ bundle exec rake -P` against your app with no environment variables present
and using the production group of your Gemfile.
Your Ruby version is 1.9.2, but your Gemfile specified 2.0.0 (Bundler::RubyVersionMismatch)

这很奇怪,因为Heroku清楚地说我在同一个牧场上运行2.0。 事实上,当我跑:

$ heroku run 'cd web; bundle exec rake -P'

它工作得很好。

TL; DR(摘要)

Heroku认为我的ruby版本是1.9.2当它真的是2.0.0 在它自己的构建过程中显示时 为什么会这样?

您只能将Rails应用程序所在的子目录推送到Heroku:

git subtree push --prefix web heroku master

web是子目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM