4

Rails アプリのアセット パイプラインに webpacker を使用しています。ドキュメントに従ってアクティブ管理者をインストールしました。styleheet ファイルと javascript ファイルの active_admin.js.coffee と active_admin.css を app/assets/stylesheets と app/assets/javascripts から vendor ディレクトリに移動しました。これらのファイルをベンダー ディレクトリからロードするために、config/initializers/assets.rb に次の行を追加しました。

Rails.application.config.assets.precompile += %w( active_admin.js active_admin.scss )

しかし、Rails はアセット パイプラインでファイルを見つけることができません。/admin パスにアクセスするたびにエラーが発生します。

    Sprockets::Rails::Helper::AssetNotFound in ActiveAdmin::Devise::Sessions#new
Showing /home/rabin/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activeadmin-1.3.0/app/views/layouts/active_admin_logged_out.html.erb where line #9 raised:

The asset "active_admin.css" is not present in the asset pipeline.

stackoverflow 全体を検索しましたが、まだ問題がわかりません。

4

2 に答える 2

2

バージョン 2.7.0 の ActiveAdmin は Webpacker サポートを追加したため、ドキュメントに従ってこのバージョン (またはそれ以上) に更新した後、ActiveAdminは必要なファイルを生成します。書く:

rails g active_admin:install --use_webpacker

--skip-usersDevice add afterを使用していない場合--use_webpacker

通常の生成とは異なり、ActiveAdmin は以下を生成します。

app/javascript/stylesheets/active_Admin.scss
app/javascript/packs/active_admin.js

これにより、必要な js と CSS ファイルが yarn でダウンロードされ、すべてのページで jquery を使用するように Webpack が更新されます (既に jquery を設定している場合は、重複したコードを削除する価値があります)。Sprockets から更新する場合は、忘れずに削除してくださいアセットまたはベンダー フォルダーからの以前の js および CSS。

于 2020-05-27T10:41:53.520 に答える