主动管理资产未使用webpacker进行编译

时间:2018-05-31 06:37:34

标签: ruby-on-rails ruby-on-rails-5 activeadmin ruby-on-rails-5.1 ruby-on-rails-5.2

我在我的rails应用程序中使用webpacker作为我的资产管道。我根据文档安装了活动管理员。我将样式表文件和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无法在我的资产管道中找到该文件。每当我访问/管理路径时,它都会引发错误。

    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但仍然无法找出问题所在。

2 个答案:

答案 0 :(得分:1)

2.7.0版上的ActiveAdmin添加了Webpacker支持,因此根据docs更新到此版本(或更高版本)后,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。

答案 1 :(得分:-1)

它应该在vendor / assets目录中。