如果我的 Next.js 应用程序中的两个表单都可以在本地使用 Nodemailer 正常运行,但在部署到 cPanel 时,我在尝试提交表单时遇到“内部服务器错误”,我该如何解决此问题?尽管尝试了各种解决方案,问题仍然存在。作为 Next.js 的新手,我正在努力寻找有用的资源。
我收到的错误消息是:
POST https://mydomain/api/sendContact 500 (Internal Server Error)
有人可以提供有关如何排查和解决此问题的指导吗?任何见解或建议将不胜感激。
只是为了确认,在本地,您使用开发模式进行了测试。不在生产模式。正确的?如果是的话:
在开发模式下,API文件夹将读取响应。然而,在开发模式下(在 npm run build 之后),您的 API 必须在页面上的某个位置使用,然后它才可以工作。
要使其正常工作,请创建一个空页面 (empty.jsx) 并使用您的 API,如下所示。
import React from 'react';
export default function EmptyPage({ data }) {
return (
<>
</>
);
}
export async function getStaticProps(context) {
const res = await fetch(
`https://mydomain/api/sendContact`
);
const data = await res.json();
return {
props: {
data: data,
},
};
}
之后,创建一个新的构建并部署它。