Next.js 直接从 url 更改不起作用

问题描述 投票:0回答:2

Next.js 版本 10.0.6 - 节点版本 12.18.4 - Linux 18.04

在我的服务器上,我尝试将 URL 直接更改为“关于”页面(通过键入 URL - 而不是通过单击链接),但它给了我一个 502 错误网关。任何复制粘贴到 URL 的操作都不起作用。只有在我的导航栏中,当我单击“关于”链接时才能导航到关于页面。

示例:

www.example.com/about

我的电脑上开发模式下的操作运行得非常好。问题出在我的服务器上。

我的部署步骤:

package.json 文件:

"scripts": {
    "dev": "next dev",
    "build": "next build && next export",
    "start": "next start"
  },

npm run build

我从“out”文件夹中取出所有文件并将它们放在我的服务器上。

nginx 配置文件:

server {
    listen myip:80 default_server;
    listen [::]:80 default_server;
    server_name example.com www.example.com;

location / {
 proxy_pass http://localhost:3000;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection 'upgrade';
 proxy_set_header Host $host;
 proxy_cache_bypass $http_upgrade;
 }

location ~ /.well-known {
  allow all;
}

 location ~* "/\.(htaccess|htpasswd)$" {
        deny    all;
        return  404;
    }

    location /vstats/ {
        alias   /home/admin/web/example.com/stats/;
        include /home/admin/conf/web/example.com.auth*;
    }

    include     /etc/nginx/conf.d/phpmyadmin.inc*;
    include     /etc/nginx/conf.d/phppgadmin.inc*;
    include     /etc/nginx/conf.d/webmail.inc*;

    include     /home/admin/conf/web/nginx.example.com.conf*;
}

我重启Nginx的服务并启动pm2。

sudo service nginx restart

pm2 start npm --name "next" -- start

我做错了什么?我的配置正确吗?

如果您需要任何其他信息,请随时询问我。

nginx next.js
2个回答
4
投票

您可以将

trailingSlash: true
添加到您的
next.config.js
,以便
/about
可以路由到 HTML 文件。这是 Next.js 9 之前的默认行为,但现在需要显式启用。

// next.config.js

module.exports = {
    trailingSlash: true
}

© www.soinside.com 2019 - 2024. All rights reserved.