我的项目,部署到Vercel
Nextjs站点,使用/pages/api/foo.ts
在/pages/index.tsx
内部,我执行以下调用:
const api = {
async monthly(symbol) {
const res = await fetch(`${server}/api/stocks?symbol=${symbol}`);
const json = await res.json();
return json;
},
};
export async function getStaticProps() {
const initial = await api.monthly(stock)
return {
props: {
initial,
},
revalidate: 60,
};
}
为了在上面的fetch
调用中获取server
值,我有以下配置文件:
const dev = process.env.NODE_ENV !== "production";
export const server = dev
? "http://localhost:3000"
: "https://fooproduction.com";
我确切的问题是:当我试图构建(和部署)这个站点时,它不能进行静态生成,因为getStaticProps
调用了一个还不存在于生产环境中的API函数(因为在构建过程中使用了NODE_ENV=production
)
我是不是在用Vercel Nextjs构建、部署和调用™函数的方式做了一些非常错误的事情?
发布于 2020-09-03 22:56:17
在getStaticProps
中添加一个try catch,并在出错时返回空的道具。您的页面将在运行时生成
https://stackoverflow.com/questions/63708087
复制相似问题