我在我的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,
},
};
}
};
有人能解决为什么这在生产中不起作用的问题吗?
1条答案
按热度按时间14ifxucb1#
Guy 's我已经找到了解决方案(经过两天的努力)。所以,基本上,当你把一些东西部署到vercel时,它会为你的网站创建一个后端服务器。这里发生的事情是,当vercel的后端服务器向我的Linux后端服务器发出请求时,由于一些安全原因,它不接受/允许这些请求(好吧,它毕竟是一个Linux服务器)。