Ruby on Rails 7中Chartkick无法加载,图表显示‘Loading...’求助
解决Ruby on Rails中Chartkick折线图显示“Loading...”的问题
根据你提供的操作步骤和页面源码,以下是你可能遗漏的关键步骤:
1. 在JavaScript入口文件中导入Chartkick和Chart.bundle
你已在importmap.rb完成pin配置,但还需在app/javascript/application.js中显式导入两个库:
import "chartkick" import "Chart.bundle"
2. 适配Turbo加载逻辑
Rails默认启用Turbo,页面切换为局部刷新模式,需补充Turbo加载后的图表初始化逻辑。在application.js中添加:
document.addEventListener("turbo:load", function() { if (window.Chartkick) { window.Chartkick.eachChart(function(chart) { chart.redraw(); }); } });
3. 重启Rails开发服务器
修改importmap.rb或application.js后,必须重启服务器才能让新配置生效。
4. 验证资源加载状态
通过浏览器开发者工具的Network标签,确认chartkick.js和Chart.bundle.js已成功加载(HTTP状态码为200)。若加载失败,检查importmap.rb中的pin路径是否正确。
额外排查点
- 确保Rails 7+环境下未同时使用Webpacker等其他打包工具,避免与Importmap冲突;
- 查看浏览器控制台(F12打开)的报错信息,比如Chart.js未找到的提示,可定位依赖加载问题。
内容的提问来源于stack exchange,提问作者Anne Lalsingh
相关产品推荐
相关产品推荐

