min*_*vor 5 deployment ruby-on-rails heroku asset-pipeline buildpack
我有一个像下面这样的目录结构:
my-app/
.git/
db/ <-- Database stuff
lib/ <-- Business logic
spec/
web/ <-- Rails
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为Heroku清楚地说我在同一个牧场上运行2.0.事实上,当我跑:
$ heroku run 'cd web; bundle exec rake -P'
Run Code Online (Sandbox Code Playgroud)
它工作得很好.
TL; DR(摘要)
Heroku的认为我的红宝石版本是1.9.2当它是真的2.0.0 在自己的构建过程所示.为什么会这样?
Ale*_*ang -1
您只能将 Rails 应用程序所在的子目录推送到 Heroku:
git subtree push --prefix web heroku master
Run Code Online (Sandbox Code Playgroud)
web子目录在哪里。
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |