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

如何在Rails中移除Trix?解决Rails6升级后的Trix冲突问题

解决Rails 6.0升级后Trix重复定义的DOMException错误

这个错误完全是因为你的项目里加载了两份Trix核心代码导致的——毕竟你从Rails 5.2(依赖asset pipeline的trix gem)升级到6.0(默认用Webpacker管理JS),很容易出现新旧加载方式的残留冲突。我给你一步步排查解决:

  • 第一步:彻底清理trix gem的残留

    1. 确认Gemfile里已经删掉了trix,然后跑一遍bundle install确保gem完全卸载
    2. 检查app/assets/javascripts/application.js,如果之前有//= require trix这行,立刻删掉;同理,app/assets/stylesheets/application.css里的//= require trix也要移除
    3. 看看app/assets/javascripts或stylesheets目录下有没有单独的trix.js/trix.css文件,直接删掉
  • 第二步:检查Webpacker的Trix引入是否重复
    Rails 6用Webpacker管理JS,你大概率是通过yarn add trix安装了Trix,这时候要确保只引入一次:

    1. 打开app/javascript/packs/application.js,确认只有一行import "trix"(如果需要样式的话加上import "trix/dist/trix.css")
    2. 检查项目里其他自定义JS文件(比如编辑器组件的代码),有没有重复写import "trix"的,删掉多余的
  • 第三步:清理所有缓存,确保配置生效
    旧缓存很容易导致残留代码依旧被加载,必须清干净:

    1. 运行rails assets:clobber清除asset pipeline的编译缓存
    2. 运行yarn cache clean清除yarn的依赖缓存,然后重新yarn install
    3. 彻底重启Rails服务器,不要用热重载,确保新的加载配置生效
  • 第四步:排查第三方gem的隐式依赖
    有些第三方gem(比如ActiveAdmin、某些表单构建器)可能自带了Trix的依赖,会偷偷加载一份Trix代码。你可以:

    1. 查看Gemfile里的其他gem文档,看看有没有开关可以禁用它们自带的Trix
    2. 用浏览器开发者工具的Network标签,刷新页面后搜索trix.js,看看加载的文件来源——如果有来自第三方gem的asset路径,就针对性处理那个gem
  • 最后验证
    处理完以上步骤后,刷新页面打开JS控制台,如果错误消失,再去Network标签确认只有一份trix.js被加载,就搞定了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:17:11