部署到Vercel的Next.js返回404找不到

lf3rwulv  于 2023-02-04  发布在  其他
关注(0)|答案(1)|浏览(531)

我想在Vercel上安装Next.js应用程序这是一个只有一页的文件夹(索引)和几个API路径。Vercel Jmeter 板显示部署成功,但当我访问应用程序时,它显示布局组件(导航栏和页脚,但一些样式丢失)与404页一样,如所附的image

。我尝试使用getStaticProps和getServerSideProps进行部署,结果相同。API路由在SSG和SSR中都工作正常,我可以从浏览器或 Postman 那里检索天气数据。我已经搜索了一段时间,这个问题here是与我关系最密切的一个,但我尝试了其中提到的所有解决方案,没有一个对我有效。我确保框架预设为next.js,根目录正确,应用程序不通过子目录提供服务。此外,我使用了一个变量作为存储在.env文件中的域名,我尝试部署并将其保留为默认值(localhost:3000),尝试将其更改为vercel自动分配的域名之一,并尝试从vercel上的项目设置中添加变量,还尝试完全不使用它进行部署,所有场景都导致了相同的结果(404页面和API工作正常)。这是我第一次在vercel上部署,我尝试联系他们,但没有收到任何回复,我猜是因为我处于爱好层。这是项目repo。应用程序在开发中以及在我本地构建和启动服务器时都工作正常。

ijxebb2r

ijxebb2r1#

问题是您调用的是内部端点(例如,api文件夹上的函数)。这是Next.js反模式(更多信息请参见文档)原因是getStaticProps在构建时获取构建静态页面所需的必要数据,但在此过程中,包含在api文件夹中的无服务器函数尚未部署。您将获得404页面,因为您正在使用getStaticProps中的try/catch块,因此当axios抛出时,catch块取得控制权并返回notFound: true

相关问题