Rails 7 ActionText故障:工具栏及内容不显示,求解决方案
检查Active Storage配置
替换S3后,确认config/storage.yml中的S3配置参数(access_key_id、secret_access_key、bucket、region等)准确无误,确保Rails能正常连接S3。执行rails active_storage:install(未执行过的话)后重启服务器。验证ActionText依赖加载
确认app/assets/javascripts/application.js已导入ActionText脚本:import "@rails/actiontext"同时检查
app/assets/stylesheets/application.css(或.scss)是否包含ActionText样式:@import "actiontext";重新编译资产:
rails assets:precompile,开发环境可删除public/assets目录后重启服务器。排查JavaScript错误
打开浏览器开发者工具(F12)的Console面板,查看是否有脚本加载失败或报错信息。常见问题包括S3 CORS配置错误,导致ActionText依赖资源无法加载。配置S3 CORS策略
登录AWS S3控制台,确保存储桶CORS策略允许应用域名访问。示例配置:<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>https://你的应用域名.com</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>开发环境可暂时设为
<AllowedOrigin>*</AllowedOrigin>测试。确认模型关联配置
检查使用ActionText的模型(如Post)是否正确添加has_rich_text :content,数据库中action_text_rich_texts表是否存在且结构正常。回滚验证问题根源
临时恢复Cloudinary配置,确认问题是否消失,以此验证是否与S3替换直接相关。若恢复后正常,重点排查S3配置或CORS;若问题依旧,检查其他近期变更(如Rails版本升级、Gem更新等)。
内容的提问来源于stack exchange,提问作者Thomas

