59

Rails 4 Betaバージョンの Michael Hartl のRuby on Rails Tutorialに従っていると、Heroku でアプリを起動できませんが、ローカルではbundle exec rails server. 確認heroku logs -tすると、次のエラーが表示されます。

$ heroku[web.1]: State changed from crashed to starting
$ heroku[web.1]: Starting process with command `bin/rails server 
-p 33847 -e $RAILS_ENV`
$ app[web.1]: bash: bin/rails: No such file or directory
$ heroku[web.1]: Process exited with status 127
$ heroku[web.1]: State changed from starting to crashed
$ heroku[web.1]: Error R99 (Platform error) -> Failed to launch the 
dyno within 10 seconds
$ heroku[web.1]: Stopping process with SIGKILL

ディレクトリをheroku run bash確認すると、実行可能ファイルがないbinことがわかります。rails

~$ ls bin
erb  gem  irb  node rdoc  ri  ruby  testrb

私は何を間違えましたか?チュートリアルに正確に従いました。

4

8 に答える 8

40

これに少し苦労した後、/bin複製したいくつかの古い Rails 3 プロジェクトとは異なり、Rails 4 プロジェクトにディレクトリがあることに気付きました。 、 、、 の/bin3 つのファイルが含まれていますが、グローバルファイル にあったため、これらは Heroku に送信されませんでした。bundlerailsrakebin.gitignore

Git や他の言語 (Java など) を使用している場合、これはかなり一般的な無視ルールなので、これを修正するには:

  1. binから削除~/.gitignore
  2. 走るbundle install
  3. git add .とで変更をコミットしますgit commit -m "Add bin back"
  4. 変更を Heroku に push するにはgit push heroku master
于 2013-07-11T01:04:07.103 に答える
9

手順:

  1. bundle config --delete bin # Bundler のスタブ ジェネレーターをオフにする

  2. rake rails:update:bin # 新しい Rails 4 実行可能ファイルを使用する

  3. git add bin or git add bin -f # bin/ をソース管理に追加

  4. git commit -a -m "you commit message"

  5. git push heroku master

  6. heroku open

于 2015-03-16T19:19:26.730 に答える
3

~/binディレクトリのアクセス許可644755. rake rails:update:binローカルで (Mac/* nix 上で)実行してから変更をプッシュすると、問題が修正されました。

于 2014-04-16T05:16:23.187 に答える
1

私はあなたとまったく同じ問題を抱えていました。問題は、bin フォルダが heroku リポジトリにプッシュされていないことにありました。

見て、見て、もう一度見てみると、bin/ フォルダーの .gitignore ファイルにはルールがありませんでした...

その後、多くの苦痛と苦悩の末、数か月前に、すべてのリポジトリのすべての bin フォルダーを無視するグローバルな .gitignore を作成していたことに気付きました (なぜ主、なぜ??)。

グローバル .gitignore を削除したところ、すべて正常に機能しました。

于 2015-01-31T09:42:11.007 に答える
-1

rake rails:update:bin@Ryan Taylor が言ったように、実行中の動作を確認できます。

この Rails アプリを最初に Windows で作成したため、この問題が発生したと思います。Linuxで上記のコマンドを実行すると解決しました。

また、開発のために Windows から Linux に変更する場合は、Gemfile.lockファイルを削除して実行bundle installし、Windows 固有の gem がリストされていない状態で再度生成することをお勧めします。

于 2015-01-28T12:24:06.103 に答える