2

Ruby on Rails アプリを heroku にアップロードすると、次のエラーが発生します。

申し訳ございません。不具合が発生しました。

これは、ローカル マシンでは発生しません。

いくつかのデバッグの後、エラーを見つけたかもしれないと思いますが、それを修正する方法がわかりません.

私のファイル application.html.erb で、次の行を削除すると問題は解決しますが、アプリの jquery モバイル テーマが失われます。問題を解決するために私ができることはありますか?

問題の原因となっている行:

<%= javascript_include_tag "application" %>

application.html.erb ファイル:

<!DOCTYPE html>
<html>
<head>
  <title>Washapp</title>
  <meta name="viewport" content="width=device-width">
  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
  <%= javascript_include_tag "application" %>

  <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
  <%= csrf_meta_tags %>

  <script>
    if (window.location.hash == "#_=_")
        window.location.hash = "";
  </script>

</head>
<body>
  <div data-role="page">
    <%= yield %>
  </div>
</body>
</html>

Heroku ログ:

2012-04-08T23:28:41+00:00 heroku[nginx]: 78.105.51.57 - - [08/Apr/2012:23:28:41 +0000] "GET / HTTP/1.1" 500 643 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19" washappdelete2.heroku.com
2012-04-08T23:28:43+00:00 app[web.1]: 
2012-04-08T23:28:43+00:00 app[web.1]: Started GET "/" for 78.105.51.57 at 2012-04-08 16:28:43 -0700
2012-04-08T23:28:43+00:00 app[web.1]: 
2012-04-08T23:28:43+00:00 app[web.1]: Processing by HomeController#index as HTML
2012-04-08T23:28:43+00:00 app[web.1]:   Rendered home/routa_list.html.erb within layouts/application (0.1ms)
2012-04-08T23:28:43+00:00 app[web.1]: Completed 500 Internal Server Error in 34ms
2012-04-08T23:28:43+00:00 app[web.1]: 
2012-04-08T23:28:43+00:00 app[web.1]:     4:   <title>Washapp</title>
2012-04-08T23:28:43+00:00 app[web.1]: ActionView::Template::Error (application.js isn't precompiled):
2012-04-08T23:28:43+00:00 app[web.1]:     5:   <meta name="viewport" content="width=device-width">
2012-04-08T23:28:43+00:00 app[web.1]:     6:   <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
2012-04-08T23:28:43+00:00 app[web.1]:     7:   <%= javascript_include_tag "application" %>
2012-04-08T23:28:43+00:00 app[web.1]:     9:   <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
2012-04-08T23:28:43+00:00 app[web.1]:     8:   
2012-04-08T23:28:43+00:00 app[web.1]:     10:   <%= csrf_meta_tags %>
2012-04-08T23:28:43+00:00 app[web.1]:   app/views/layouts/application.html.erb:7:in `_app_views_layouts_application_html_erb__2373145142857118006_42724320'
2012-04-08T23:28:43+00:00 app[web.1]:   app/controllers/home_controller.rb:4:in `index'
2012-04-08T23:28:43+00:00 app[web.1]: cache: [GET /] miss
2012-04-08T23:28:43+00:00 app[web.1]: 
2012-04-08T23:28:43+00:00 app[web.1]:

アプリ/資産/javascripts/application.js

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_tree .

リポジトリ: https://github.com/karangb/herokuProblem

4

7 に答える 7

7

問題が解決しました!

簡単でした-アプリをHerokuにプッシュしようとすると、500内部サーバーエラーから取得しました

あなたが提供したheroku情報に基づいて、あなたは竹のスタックにいて、そのスタックはRails 3.1+をサポートしていないことがわかりました. cedar スタックのみが Rails 3.1+ をサポートします。次のコマンドを使用して、cedar スタックに新しいアプリを作成する必要があります。

heroku create --stack シダー

于 2012-04-09T00:53:42.233 に答える
3

config/application.rb に追加

config.assets.initialize_on_precompile = false

git にプッシュしてから、heroku にプッシュします。

于 2012-12-24T06:42:20.447 に答える
1

追加してみる

//= require jquery.mobile

あなたの

app/assets/stylesheets/application.js

AMDセット

config.assets.compile = tue

あなたの

config/enviroments/production.rb

于 2012-04-08T23:33:49.733 に答える
0

内にjavaのようなものがあればapp/assets、スプロケットが外れます。代わりにアプレットのような名前を付けると、javascriptsディレクトリの内容をコンパイルできます。ソース

于 2012-04-08T23:38:37.647 に答える
0

設定もしていますか

config.assets.initialize_on_precompile = false

これは Rails 3.2 での新しい変更です (ドキュメントを参照してください) 。

それでも、スラッグのコンパイル中にエラーが表示されるはずです (上記のフラグを設定しない場合、以下の例のように)。

-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       rake aborted!
       could not connect to server: Connection refused
       Is the server running on host "127.0.0.1" and accepting
       TCP/IP connections on port 5432?

rake プリコンパイル タスクをローカルで実行してみて、エラーを確認することもできます (ドキュメントで示唆されているように)。

于 2012-04-08T23:58:58.100 に答える
0

config/enviroments/production.rb で次の行を false に設定してみてください:

config.assets.compile = false
于 2012-04-08T23:23:12.260 に答える