next.js getServerSideProps在开发模式下工作正常,但在生产模式下失败,但useSWR工作正常

vsdwdz23  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(178)

我在我的nextjs中有这样一段简单的代码。当我在开发模式下时,我可以正确地获取我的数据,但是当我使用vercel将其部署到生产环境中时,我就得到了“request failed with error 503”错误。但是当我使用useSWR进行同样的操作时(客户端获取它时一切正常)。

import { GetServerSideProps, NextPage } from "next";
import axios from 'axios';

type Props = {
  data: any;
  error: any;
};

const Home: NextPage<Props> = ({ data, error }) => {
  if (error) return <div>{error}</div>;
  return (
    <div className="flex flex-col items-center justify-center min-h-screen py-2">
      {data.map((blog: any) => (
        <div key={blog._id}>
          <h1>{blog.title}</h1>
        </div>
      ))}
    </div>
  );
};

export default Home;

export const getServerSideProps: GetServerSideProps = async () => {
  try {
    const res = await axios.get(`${process.env.CLIENT_URL/api/v1/blogs/random`);
    // res.data = {status: "success", data: blogs}
    console.log(res.data);

    return {
      props: {
        data: res.data.data,
      },
    };
  } catch (err: any) {
    return {
      props: {
        error: err.message,
      },
    };
  }
};

有人能解决为什么这在生产中不起作用的问题吗?

14ifxucb

14ifxucb1#

Guy 's我已经找到了解决方案(经过两天的努力)。所以,基本上,当你把一些东西部署到vercel时,它会为你的网站创建一个后端服务器。这里发生的事情是,当vercel的后端服务器向我的Linux后端服务器发出请求时,由于一些安全原因,它不接受/允许这些请求(好吧,它毕竟是一个Linux服务器)。

相关问题