Joe「再续前缘」1.41邮件测试 404 修复指南
在使用 Joe再续前缘1.41时,你可能会遇到后台邮件测试功能报错的问题
明明邮件配置没问题 ,SMTP 端口通畅 ,邮件通知(如评论回复、友链申请)都正常发送
一、问题分析
在 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/。这就导致了请求无法正确命中后端路由,返回了 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 的问题~
三、效果
清完再在后台点击「点击给 ...@qq.com 发一封测试邮件」,会收到一封测试邮件,并且浏览器的 Network 面板中可以看到请求返回 200 OK 状态码 ,而不是之前的 404 Not Found。
四、总结
过程虽然有些曲折,但最终发现,问题的其实很简单——只是一个路径拼接的小错误。在开发和维护过程中,我们常常会遇到类似的「假问题」,看似复杂,实则只是一个小细节没有注意到。通过这次经历,我们学会了在遇到问题时,不仅要检查网络、服务器配置等「大方向」,也要留意代码中的每一个小细节,有时候,一个小小的斜杠 / 就能决定成败。
还有「请求错误,请检查您的网络问题」不是真的网络问题,只是在joe.config.min.js里这样写,这样定义这个请求返回,往往我们会被这样的信息误导,也需要我们一定的判断能力~