Rails 6升级至Rails 7后JavaScript无法加载问题排查
Rails 7 升级后 JS 未执行的排查要点
确认布局文件的 JS 引入标签是否正确
Rails 7 默认用javascript_importmap_tags替代 Rails 6 的javascript_pack_tag,检查app/views/layouts/application.html.erb里是否换成了:<%= javascript_importmap_tags %>要是还在用旧标签,新的 JS 文件根本不会被加载。
检查 importmap 配置是否正确映射
打开config/importmap.rb,确认里面有这行配置:pin "application", preload: true之后执行
bin/importmap install刷新映射,记得重启服务器再测试。验证 JS 文件的加载状态与语法
打开浏览器开发者工具(F12):- 切到「网络」标签,刷新页面看
application.js是否成功加载,没加载的话检查文件路径是否正确 - 要是加载了,看「控制台」有没有语法报错,比如旧的
$(document).ready在 Rails 7 的 ES 模块环境下可能失效,换成原生写法试试:document.addEventListener('DOMContentLoaded', () => { alert('hello'); });
- 切到「网络」标签,刷新页面看
清理 manifest.js 里的旧引用
检查app/assets/config/manifest.js,如果还有类似//= link application.js的旧 Sprockets 引用,直接删掉,避免和 importmap 冲突。确认服务器已重启
修改 importmap.rb 这类配置文件后,必须重启 Rails 服务器才会生效,别漏了这步。
内容的提问来源于stack exchange,提问作者Bazley
相关产品推荐
相关产品推荐

