Next.js 表单在本地工作但在 cPanel 部署上失败

问题描述 投票:0回答:1

如果我的 Next.js 应用程序中的两个表单都可以在本地使用 Nodemailer 正常运行,但在部署到 cPanel 时,我在尝试提交表单时遇到“内部服务器错误”,我该如何解决此问题?尽管尝试了各种解决方案,问题仍然存在。作为 Next.js 的新手,我正在努力寻找有用的资源。

我收到的错误消息是:

POST https://mydomain/api/sendContact 500 (Internal Server Error)

有人可以提供有关如何排查和解决此问题的指导吗?任何见解或建议将不胜感激。

javascript forms next.js nodemailer internal-server-error
1个回答
0
投票

只是为了确认,在本地,您使用开发模式进行了测试。不在生产模式。正确的?如果是的话:

在开发模式下,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,
    },
  };
}

之后,创建一个新的构建并部署它。

© www.soinside.com 2019 - 2024. All rights reserved.