2

現在、RubyonRailsのアセットパイプラインで問題が発生しています。

私はEコマースソリューション(Spree)を使用していますが、ドキュメントには次のようなものがあります。

[...]特別なプリコンパイルタスクを使用すると、パフォーマンスを大幅に向上させることができます。

$ bundle exec rake assets:precompile:nondigest

開発でプリコンパイルレーキタスクを使用すると、ページをリロードするときにアセットファイルへの変更が自動的に含まれるのを防ぐことができます。変更を利用できるようにするには、プリコンパイルタスクを再実行する必要があります。

私の問題は、コマンドを実行した後、すべてのCSSを手動で再コンパイルして有効にする必要があることです。このための「逆」コマンドが見つかりません。

パブリック/アセットを削除してから再起動しようとしましたが、何も機能しません。

私のapplication.rbには、アセット用の次の行があります。

config.assets.enabled = true

編集:私のdevelopment.rb

Mystore::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Log error messages when you accidentally call methods on nil.
  config.whiny_nils = true

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  # Raise exception on mass assignment protection for Active Record models
  config.active_record.mass_assignment_sanitizer = :strict

  # Log the query plan for queries taking more than this (works
  # with SQLite, MySQL, and PostgreSQL)
  config.active_record.auto_explain_threshold_in_seconds = 0.5

  # Do not compress assets
  config.assets.compress = false

  # Expands the lines which load the assets
  config.assets.debug = true
end

誰かが手がかりを持っているなら、私は開いています(:

ありがとうございました

4

5 に答える 5

1

通常、次を実行できます。

$ bundle exec rake RAILS_ENV=development assets:clean

これで、プリコンパイルされたアセットがすべてクリアされます。開発モードになっているようですが、本番モードになっている場合は、そのRAILS_ENV=development部分を削除してください。

于 2013-01-16T15:45:02.577 に答える
1

念のため:という名前のファイルを確認できますmanifest.ymlか?/assets/それはあなたのディレクトリにあるはずです。存在する場合は、内部にダイジェストされた名前があることがわかります。コメントするか、削除してみてください。

于 2013-01-16T16:24:42.420 に答える
0

うまくいけば、バージョン管理を使用しています。「gitdiff」または同等のファイルを入力して、アプリのこの新しい動作を引き起こしている可能性のある変更されたファイルを正確に確認します。

于 2013-01-16T15:54:35.610 に答える
0

Erowlin、アセットをプリコンパイルすると、CSSに加えた変更は適用されません。これは、すべてのアセットがこれら2つのファイルに押しつぶされているapplication.css/application.jsから既に読み取られているためです。

したがって、アセットに変更を加えたい場合は、最初にアセットをプリコンパイルすることはできません。

Spreeの場合、CSS / Javascriptに触れる必要のないコードで作業している場合は、前述の手法を使用するのに適しています。

于 2013-01-16T15:59:04.697 に答える
0

問題が何であるかを見つけました:

Spreeはロゴ画像の名前をデータベースに保存しています。そのため、rake tmp:clearは機能していませんでした。CSSは問題ないようで、変更はすぐに適用されます。

応答は次のとおりです:http: //osdir.com/ml/spree-user/2012-12/msg00147.html

Spreeにバグを報告する必要があるのか​​、それともそうでないのかはわかりません。とにかく、それは奇妙です。

みなさん、ありがとうございました!

于 2013-01-16T16:37:43.973 に答える