从浏览器调用的Nextjs路径返回404(Nextjs,NGINX)

时间:2019-11-20 02:58:40

标签: reactjs nginx next.js

nextjs如何处理SEO?我试图通过直接从浏览器调用页面来呈现页面(localhost:8080 / about),但是NGINX返回404。指向嵌入在主页中的同一页面的链接正在工作,但是无法使用URL直接加载该页面。 NGINX或Nextjs应用程序是否需要其他配置? enter image description here

3 个答案:

答案 0 :(得分:1)

由于您将NGINX用作Web服务器,因此您可能希望将代理反向转换为NextJS应用。 https://medium.com/@deresegetachew/serving-react-spa-using-nginx-and-reverse-proxy-4e5485c814a0

React / NextJS默认使用端口3000。您帖子中的URL指向端口8080。默认情况下,NextJS不使用NGINX,因此,我相信其他Web服务器正在呈现您的页面,即NGINX。

在nextjs项目上运行以下命令时,将看到以下输出,并说明正在提供的端口。然后尝试使用网络浏览器查看。

$ npm install
$ npm run dev
...
[ wait ]  compiling ...
[ ready ] compiled successfully - ready on http://localhost:3000

如果您在项目的顶层目录中有一个server.js,或者您可以添加一个以配置应用程序将服务的端口。 https://nextjs.org/docs/old#custom-server-and-routing

如果您的Web服务器启用了防火墙,则并非所有端口都可用。

答案 1 :(得分:0)

NextJS为网站本身提供服务,并且不使用nginx或Apache。

在package.json文件中,脚本部分应该有一个next命令。我通常有:

  "scripts": {
    "build": "next build",
    "dev": "next"
  }

运行yarn devnpm run dev将引导站点,并允许您本地连接到该站点,并查看其如何处理404和其他错误。

部署站点时,它将使用这种服务器设置,而不是上面提到的任何服务器。

我希望这会有所帮助。

答案 2 :(得分:0)

您可以共享一些配置代码吗? 即刻nextjs应该显示默认导出反应组件,该组件位于 pages / about.js pages / about / index.js / about 下>按下https://localhost:8080/about时。