【发布时间】:2020-12-19 12:00:56
【问题描述】:
我面临的问题是在使用getStaticPaths 和getStaticProps 时,我无法在生产版本中获取绝对URL
export async function getStaticPaths() {
const url =
process.env.NODE_ENV === "development"
? "http://localhost:3000"
: "https://websitename.vercel.app";
const res = await fetch(`${url}/api/posts`);
const posts = await res.json();
console.log("posts: ", posts);
const paths = posts.map(({ slug }) => ({
params: { slug },
}));
console.log("Paths: ", paths);
return { paths, fallback: false };
}
export async function getStaticProps({ params }) {
console.log("params: ", params);
const url =
process.env.NODE_ENV === "development"
? "http://localhost:3000"
: "https://websitename.vercel.app";
const res = await fetch(`${url}/api/post`, {
method: "POST",
body: params.slug,
});
const post = await res.json();
return {
props: { post },
};
}
它在开发版本中运行良好,但在生产中却失败了,因为硬编码的https://websitename.vercel.app 不是vercel 生成的。 vercel 生成的 URL 类似于 websitename-q1hdjf6c2.vercel.app。
我该如何解决这个问题?
【问题讨论】:
标签: javascript reactjs next.js