問題タブ [rails-sprockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3508 参照

ruby-on-rails - Sprockets::Rails::Helper::AssetNotFound - アセット "my_logo.jpeg" がアセット パイプラインに存在しません

このエラーを受け取りましたが、何が欠けていますか?

  1. 新しい Ruby on Rails アプリケーションを作成しますrails new my_app# Rails 6.0.3.2

  2. gems、web packer などをインストールできるようにします。

  3. config.assets.compile = falseに追加config/environments/development.rb

  4. この内容で静的コントローラとインデックス ファイルを追加します

    app/controllers/ static_controller.rb

    アプリ/ビュー/静的/index.html.erb

  5. my_logo.jpeg ファイルをapp/assets/images/

  6. アセットをプリコンパイルします。bundle exec rake assets:precompile

  7. Rails サーバーを次のように実行します。bundle exec rails server

public/assets/ファイルが次の名前であることがわかります。my_logo-484af9fb82bc8a0279ef38b527402b5697475bd8f827251f46fbb182be6c07a1.jpg

これをtrueに設定すると、画像がうまく表示されます。config.assets.compile = true

からのマニフェストファイルの内容もpublic/assets/.sprockets-manifest-a7f9f10978778e828273bf0c790645f6.json

config.assets.unknown_asset_fallback = trueまた、パスが何であるかを確認するためにオンにしましたが、それは次のようになります:http://localhost:3000/images/my_logo.jpgそして、それが false の場合 (機能する場合)、次のパスを取得します:http://localhost:3000/assets/my_logo-484af9fb82bc8a0279ef38b527402b5697475bd8f827251f46fbb182be6c07a1.jpg