3

サイトにアクセスしてHerokuログを確認しようとすると、次のエラーが表示されます。

ActionView :: Template :: Error(could n't find file'reset' 2012-06-13T02:31:43 + 00:00 app [web.1]:(in /app/app/assets/stylesheets/application.css :4)):

(application.cssには次の行が含まれています* =リセットが必要です)

次に、「heroku run bundle exec rakeassets:precompile:all」を実行しようと思いましたが、これにより同様のエラーが発生します。

-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       rake aborted!
       couldn't find file 'main/first.js.coffee'
       (in /tmp/build_3428u21sggsoc/app/assets/javascripts/application.js:1)
       Tasks: TOP => assets:precompile:primary

(そのファイルは、私のapplication.jsから要求される最初のファイルであり、最初の行は「// = require main / first.js.coffee」です)

要約すると、アプリケーションはローカルで正常に実行されますが、Herokuにデプロイすると、ファイルが見つかりません。なぜ何かアイデアはありますか?

編集:これがプロジェクトツリーです。(アプリの前にもう1つのディレクトリがあり、それはconfig、db、logなども含むメインプロジェクトディレクトリです)

別の編集:.gitignoreまたは.slugignoreに問題はありません。

first.js.coffeeを示すプロジェクトツリー

application.js

4

2 に答える 2

3

最初に、ローカルコンピューターでアプリケーションを実稼働モードで実行することをお勧めします。いくつかのエラー(アセットにありますが、ルーティングにもいくつかあります)があり、本番環境にのみ影響を与える可能性があるため、本番サーバーから行うのではなく、ローカルでテストして修正できます。

Herokuでのアセットの事前コンパイルについて、akjoeによって提供されるソリューションでは、コンパイルされたアセットがgit repoで追跡されるはずです。このオプションを使用すると、Herokuで発生するアセットの事前コンパイルを無効にし、Railsにアセット(ファイルに設定)を提供させる必要がconfig.serve_static_assets = trueあります。production.rbアセットのリクエストのレールアプリケーションを解放するという彼の主なメリットの1つを失ったため、アセットパイプラインに対処する最善の方法ではありません。正しく機能させるには、herokuの説明のようなものを設定する必要があります:Rails3.1以降での静的アセットキャッシングのためのMemcachedでのRack::Cacheの使用

また、本番環境でローカルでアセットのプリコンパイルを試すことをお勧めしますRAILS_ENV=production bundle exec rake assets:precompile。エラーが発生したかどうかを確認します。

最後に、このさまざまなリンクをチェックして、役立つ情報を見つけることをお勧めします。

于 2012-06-18T18:21:47.310 に答える
2

スタイルシートの編集が有効にならないというほぼ同じ問題と同様のエラーが発生しました...Herokuによって無視されているように見えるcss(またはあなたの場合はcssファイルへの参照)を編集することがわかりました。Herokuはpublic/assetsディレクトリ内のスタイルシートのみを参照していたことが判明しました。このディレクトリをクリアして、動作させることができました。後で、gitにチェックインする前に、アセットディレクトリをプリコンパイルする必要があることがわかりました。これは次のように行います。

  1. アセットディレクトリをプリコンパイルします:rake assets:precompile
  2. プロジェクトファイルを現在のGitリポジトリに追加します。git add .
  3. ファイルの変更を現在のGitリポジトリにチェックインします。git commit -am "description goes here"
  4. ファイルをHerokuにプッシュします: git push heroku master(Herokuにプッシュするブランチを「master」に置き換えます)。

お役に立てば幸いです。

于 2012-06-17T20:26:38.070 に答える