升级Rails与ActiveAdmin后出现active_admin/nested_menu_arrow.gif缺失错误
这个问题是因为ActiveAdmin 2.x版本已经移除了旧的nested_menu_arrow.gif图片资源,改用纯CSS实现菜单箭头样式了,而你的自定义active_admin.css.scss文件里还保留着对这个旧资源的引用,所以才会报错。
下面是具体的解决步骤:
定位并修改引用代码
打开你的app/assets/stylesheets/active_admin.css.scss文件,找到第9行的代码,应该是类似这样的:background-image: url(active_admin/nested_menu_arrow.gif);直接删除这行代码即可——ActiveAdmin 2.x已经默认内置了菜单箭头的CSS样式,不需要再引用图片。
如果需要自定义箭头样式
要是你想保留自己的箭头样式,可以用CSS伪元素来实现,比如:.active_admin .menu-item.has_nested > a::after { content: '▼'; margin-left: 6px; font-size: 0.75em; color: #666; }调整
content里的符号和样式属性就能得到你想要的效果。清理资产缓存
运行以下命令清理旧的资产缓存,确保新样式生效:rails assets:clobber开发环境下重启服务器即可,生产环境可以再运行
rails assets:precompile。重启服务器
最后重启你的Rails服务器,刷新页面后错误就应该消失了。
本质上这是ActiveAdmin大版本升级时的前端资源变更导致的,2.x相比1.x做了很多UI层面的优化,移除了不少老旧的图片资源,改用更轻量的CSS方案,所以旧的资源引用自然就找不到了。
内容的提问来源于stack exchange,提问作者Avinash Gupta
相关产品推荐
相关产品推荐

