Joe「再续前缘」1.41邮件测试 404 修复指南
一、问题分析
在 Joe「再续前缘」主题的后台配置中,邮件测试功能通过前端JavaScript发起请求,代码如下:
{type:'post',url:Joe.BASE_API+'mail-test'}这里的关键是Joe.BASE_API的值。在主题的 config.php和factory.php 文件中,Joe.BASE_API 被定义为:
Joe.BASE_API = `<?= joe\root_relative_link(joe\index('joe/api')) ?>/`;这段代码的本意是生成一个相对路径,然而,实际生成的路径却是 /joe/api,而不是正确的 /joe/api/。这就导致了请求无法正确命中后端路由,生成/joe/apimail-test返回了 404 错误。
{/collapse-item}
二、解决方法
修改前端请求路径
直接在前端 JavaScript 路径 网站目录/usr/themes/joe再续前缘/assets/typecho/config/js/ 中修改joe.config.min.js的请求路径,可以直接Ctrl+F搜索 mail-test定位 将:
url:Joe.BASE_API+'mail-test'改为:
url:'/joe/api/mail-test'
这样,请求路径直接强制写为 /joe/api/mail-test,也能绕过 Joe.BASE_API 的问题~
三、效果
清完再在后台点击「点击给...发一封测试邮件」,会收到一封测试邮件,并且浏览器的 Network 面板中可以看到请求返回 200 OK 状态码 ,而不是之前的 404 Not Found。
四、总结
过程虽然有些曲折,但最终发现,问题的其实很简单——只是一个路径拼接的小错误。在开发和维护过程中,我们常常会遇到类似的「假问题」,看似复杂,实则只是一个小细节没有注意到。通过这次经历,我们学会了在遇到问题时,不仅要检查网络、服务器配置等「大方向」,也要留意代码中的每一个小细节,有时候,一个小小的斜杠 / 就能决定成败。
还有「请求错误,请检查您的网络问题」不是真的网络问题,只是在joe.config.min.js里这样写,这样定义这个请求返回,往往我们会被这样的信息误导,也需要我们一定的判断能力~
厉害啊!不过懒得去修复了,这个完全用不上,修不修不影响,哈哈。