4

我在我的 rails 应用程序中将 webpacker 用于我的资产管道。我根据文档安装了活动管理员。我将 styleheet 文件和 javascript 文件 active_admin.js.coffee 和 active_admin.css 从 app/assets/stylesheets 和 app/assets/javascripts 移动到供应商目录。为了从供应商目录加载这些文件,我在 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-users之后--use_webpacker

与通常的 ActiveAdmin 生成不同,它将生成:

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

这将使用 yarn 下载所需的 js 和 CSS 文件,并更新 Webpack 以在所有页面上使用 jquery(如果您已经设置了 jquery,则值得删除重复的代码)如果您从 Sprockets 更新,请不要忘记删除资产或供应商文件夹中的先前 js 和 CSS。

于 2020-05-27T10:41:53.520 回答
-2

它应该在 vendor/assets 目录中。

于 2018-05-31T13:10:46.713 回答