You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 4.1.5配置相对根路径后Active Admin无法加载Rich编辑器

解决Rich编辑器在带相对URL根的Rails Active Admin中不显示的问题

你遇到的核心问题是Rich gem的静态资源加载路径没适配你设置的relative_url_root和assets.prefix。当你加上这些路径前缀后,Rich的JS、CSS及相关资源的引用URL没有自动带上/lince或/lince/assets前缀,浏览器找不到这些资源,编辑器自然就渲染不出来了。

下面是具体的排查和解决步骤:

1. 先确认资源加载失败的直接原因

打开浏览器开发者工具(按F12)切换到「网络」标签,刷新Active Admin页面。你大概率会看到Rich相关的JS/CSS文件返回404错误——这就是编辑器不显示的直接诱因。

2. 配置Rich适配相对URL根

创建或修改config/initializers/rich.rb文件,给Rich添加资产主机配置,让它适配你的路径前缀:

Rich.setup do |config|
  # 根据你的配置,这里设置为你的relative_url_root
  config.asset_host = '/lince'
  # 如果assets.prefix是/lince/assets,也可以尝试设置为'/lince/assets',看哪种能正确加载资源
end

这个配置会让Rich生成的资源引用URL自动带上/lince前缀,确保浏览器能定位到对应的文件。

3. 确保Rich资产被预编译

在config/initializers/assets.rb中把Rich的资产加入预编译列表:

Rails.application.config.assets.precompile += %w( rich/* )

然后执行资产预编译命令(开发环境也可以执行,确保资源被正确处理):

rake assets:precompile

完成后重启Rails服务器,让新的资产配置生效。

4. 手动在Active Admin中引入Rich资源

有时候Rich的资产不会自动被Active Admin的资产包包含,你可以手动引入:

  • 在app/assets/javascripts/active_admin.js中添加:
    //= require rich/rich
    
  • 在app/assets/stylesheets/active_admin.css.scss中添加:
    @import "rich/rich";
    

这样能确保Rich的核心JS和CSS在Active Admin页面中被正确加载。

为什么移除路径配置后能正常工作?

默认情况下,Rails的资产路径是根路径(/assets),Rich gem的资源引用都是基于这个根路径的,所以能正常加载。当你添加relative_url_root和assets.prefix后,资产的基础路径变成了/lince/assets,但Rich没有自动适配这个变化,导致资源URL错误,最终编辑器无法初始化。

内容的提问来源于stack exchange,提问作者Felipe Marcon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:26:48