18

私はRailsでサイトを開発してきましたが、すべてが比較的スムーズに進んでいます。突然、ビューとアセットへの変更が表示されなくなりました。スタイルシートまたはHTMLを変更し、でブラウザをリロードしてhttp://0.0.0.0:3000も何も変更されません。WEBrickを再起動しても、何も変更されていません。これは、画像を完全に変更した場合にも当てはまります。

新しい変更を取得する唯一の方法は、アセットをプリコンパイルすることです。

C:\Users\me\website>rake assets:precompile
C:/Ruby193/bin/ruby.exe C:/Ruby193/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets

なぜそれはRAILS_ENVとして生産を示しているのですか?たぶん私の開発環境はどういうわけか本番環境に変わったのでしょうか?しかし、それでも、変更を反映するためにアセットをプリコンパイルする必要はありません。とにかく、コントローラーとerbファイルで戻りますRails.env.development?trueRails.env.production?false

/tmpディレクトリを削除しようとしましたが無駄になりました。

Herokuをコンパスで動作させるには、config/application.rbに次の行を追加する必要がありました。

config.assets.initialize_on_precompile = false

ただし、その行を削除しても、とにかく問題は解決しませんでした。

4

4 に答える 4

38

ディレクトリの内容を削除しますpublic/assets/。ここでプリコンパイルされたファイルが送信され、リクエストがSprocketsに渡されるのではなく、存在する場合は提供されます。ディレクトリ全体を安全に削除するだけで、問題は解決するはずです。

于 2012-10-06T19:11:32.993 に答える
10

もう1つの手法は、public /Assets/ディレクトリの名前をpublic/Assets_hide/のような名前に変更することです。次に、「rake Assets:precompile」を実行してサーバーにプッシュする前に、名前を元に戻します。これにより、プリコンパイル時間が短縮され、アセットをコピーするリッチなどの一部のgemのアセットファイルのアクセス許可も保持されます。

より簡単な方法は、config / environment/development.rbファイルを次のように変更することです。

config.serve_static_assets = false

そうすれば、public/assetsディレクトリをいじる必要はありません。ただし、ペーパークリップなどを使用して画像ファイルをアップロードしている場合は、画像ファイルが提供されないため、これは機能しません。

于 2012-10-07T04:36:59.043 に答える
8

受け入れられた答えを少し簡単にすることができる何かを追加したいだけです。これが私が使用するものです:

rake tmp:cache:clear
rails server
于 2019-01-15T07:42:11.180 に答える
4

おそらく誰にとっても明らかですが、public / Assets /フォルダーを削除または名前変更する場合は、ローカルサーバーを再起動し、ブラウザーのキャッシュをクリアする必要があることを追加したかっただけです:-)

于 2014-03-30T18:53:27.657 に答える