构建 NUXT 应用程序时无法获取 /PATH 错误 - 查询参数中的 DOT

cannot GET /PATH error when building NUXT app - DOT in the query params

我的 nuxt 应用程序有一个奇怪的问题。每当我 运行 npm run dev 一切正常。但是一旦我 npm run build 然后 npm run start 我就会遇到 cannot GET [path of the page here]

的问题

我注意到只有在 url 中添加此查询 ?verify_url=http%3A%2F%2Fapi.uareacademy.com.au%3A8000%2Fapi%2Femail%2Fverify%2F38%3Fexpires%3D1650449854%26hash%3D09fcd461f0b902db36c51eee9f5ad46782487f70%26signature%3D11b88607ea9664ac3f9792146e88b5130001fe60af5124f00b8cd9da4950afcf 时才会遇到该问题。如果我删除此查询,页面加载正常。

我一直在努力寻找解决方案,但我有点被困在这里了。任何帮助将不胜感激。

谢谢

===

编辑 1:我发现了问题所在。它是查询参数 api.uareacademy.com.au 中的点 (.),我正在弄清楚如何修复它。完成后我会更新。

编辑 2:好的,我修复了它。我也需要从服务器对点进行编码。这是我所做的(使用 php)。手动将 . 替换为 %2E 解决了问题

$url = $frontendUrl . '?verify_url=' . urlencode($verifyUrl);
return str_replace('.', '%2E', $url);

编辑 3:现在,尽管编辑了两个用于测试邮件服务(如邮件陷阱)的作品。它不适用于 gmail 和 outlook 等实时电子邮件服务。试试这个

return $frontendUrl . '?verify_url=' . str_replace('.', '%2E',urlencode($verifyUrl));

好的,我修好了。我也需要从服务器对点进行编码。这是我所做的(使用 php)。手动将 . 替换为 %2E 解决了问题

$url = $frontendUrl . '?verify_url=' . urlencode($verifyUrl);
return str_replace('.', '%2E', $url); // this wont work 



return $frontendUrl . '?verify_url=' . str_replace('.', '%2E',urlencode($verifyUrl)); //this works