问题
点击导航栏饼图图标,下拉面板里各图表一直 Loading...
原因
统计图表由 core.min.js 驱动,点击饼图后依次:加载 ECharts → 请求统计数据 → 渲染图表,任一步失败都不显示。
| 步骤 | 失败原因 |
|---|---|
| 加载 ECharts | ECHART_CDN 配错,路径拼成 .../echarts.min.js/echarts.min.js → 404 |
| 请求数据 | 接口 /?action=get_blog_statistic 被 CDN 缓存污染,返回首页 HTML 而非 JSON |
| 渲染图表 | 前两步成功才会执行 |
修复步骤
core.min.js 是混淆文件,而且以后还要升级,不宜直接改。ECharts 路径可通过配置修正;统计接口 URL 写死在 core 里,只能在 footer 拦截 $.getJSON 改写请求地址。
1. 修正 ECharts 路径
编辑 usr/themes/handsome/component/header.php,将 ECHART_CDN 改为本地静态目录:

ECHART_CDN: '<?php echo rtrim(STATIC_PATH, "/"); ?>/static/js',core 会拼上 /echarts.min.js,最终加载 {STATIC_PATH}static/js/echarts.min.js。使用自定义静态 CDN 时需同步该文件。
2. 拦截统计接口
编辑 usr/themes/handsome/component/footer.php,在 core.min.js 引用之后插入脚本。core 写死的 /?action=get_blog_statistic 在 CDN 下会拿到首页缓存,拦截后改走 /index.php?action=... 即可绕过。

代码:
此处内容需要评论回复后(审核通过)方可阅读。
验证
强刷页面,点击饼图图标,图表正常显示即可。


11 条评论
原来饼图一直loading是这样折腾的啊,看来得同时改header和footer才行,不然光改CDN路径还是没用
哈哈,看来你已经抓到关键了!没错,这个问题的坑就在这——光换CDN路径只是让ECharts能加载,但核心逻辑还得靠footer里的脚本去触发。所以header和footer得一起改,少一处图表都会卡在loading转圈。我当初排查时也是绕了好一会儿才反应过来。如果还有啥细节不清楚,随时留言,咱们一起折腾!
文章不错支持一下,非常喜欢
谢谢支持!能帮到你或者让你喜欢,我也很开心~如果你在折腾主题或遇到其他问题,随时留言交流,咱们一起研究。
感谢@
不客气,能帮到你就好!图表不显示基本就是 ECharts 加载或数据请求卡住了,按文章步骤一步步排查通常能解决。如果还不行,欢迎把具体报错发我,一起再看看~
文章不错支持一下,非常喜欢
你算姻缘准吗
谢谢支持!能帮到你我也很开心~这篇文章确实是自己踩了坑才总结出来的,希望大家都能少走弯路。如果之后遇到其他主题或博客相关的问题,欢迎随时留言交流,我尽量帮大家看看!
🤖 AI辅助回复
原来统计图表加载失败是这个原因啊,我也遇到过这个问题,之前还以为是 ECharts 的事儿呢。按照你说的在 footer 里拦截改地址,确实解决了。
可以显示了。