0

Rails 3.2.3 アプリで、heroku にデプロイすると次のようなエラーが発生します。

Started GET "/" for 59.xx.xx.xx at 2012-xx-xx xx:xx:xx +0000
Completed 500 Internal Server Error in 62ms

ActionView::Template::Error (style.css isn't precompiled)

つまり、スタイルシートが何らかの理由でプリコンパイルされていないことがわかりました (はい、assets:precompile を試しました)。

これを修正するには、まず開発ボックスでこのエラーを再現する必要があるため、何が問題なのかがわかります。

したがって、私の質問は次のとおりです。

私のマシンでこの問題を再現するにはどうすればよいですか?

4

2 に答える 2

3

デフォルトでは、Rails はapplication.jsand application.css(およびすべての非 JS/CSS アセット) のみをプリコンパイルします。別のファイルをプリコンパイルする場合 (レイアウトで , et al. を使用する場合はこれを行う必要がありjavascript_include_tagます)、ファイルをプリコンパイル済みファイルのリストに追加する必要があります。

を開くconfig/environments/production.rbと、 で始まるコメント アウトされた行とそのconfig.assets.precompile上に説明が表示されます。この行のコメントを外して、次のように変更します。

config.assets.precompile += %w(stylesheets/style.css)

(適切なディレクトリでない場合は、style.css へのパスを使用します)。

これを開発で再現するには、development.rb を変更して、すべて production.rb と同じアセット設定にする必要があります。

[編集]

おわかりのように、組み込みの Rails サーバーをコマンド ラインから別の環境で起動できます。そのため、せいぜい欺瞞的 (予期しない副作用) であり、最悪の場合 (誤ってユーザーに電子メールを送信する) 危険です。役に立たないわけではありませんが、気をつけてください。;)

于 2012-04-21T08:24:52.033 に答える
0

サーバーの起動時に環境を指定するだけで、ローカルの開発マシンで本番環境を実行できました

$ RAILS_ENV=production rails s
=> Booting Thin
=> Rails 3.2.3 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server

そして、問題を再現することができました。Rails で開発環境と本番環境を切り替えるのがそれほど簡単なことだとは知らなかった

于 2012-04-21T15:24:39.887 に答える