首页 > 解决方案 > 在 NextJS 应用程序中使用 nginx 提供动态路由

问题描述

我使用 nginx 作为我的 NextJS 应用程序的静态文件服务器,以便在开发环境中对其进行测试。我的应用程序遵循一种模式,我通常有以下路线:

someRoute/
    index.tsx
    register.tsx
    [id].tsx

我的 nginx.conf 文件有以下内容:

worker_processes 4;

events { worker_connections 1024; }

http {
    server {
        listen 80;
        root  /usr/share/nginx/html;
        include /etc/nginx/mime.types;
        try_files $uri $uri/ /index.html /register.html;
    }
}

发生的事情是,当我使用 nginx 创建应用程序的 docker 映像时,如果我尝试访问someRoute/registeror someRoute/123,我总是会得到该localhost/index页面。someRoute/index工作正常,但其他两个没有。

我的猜测是,当我尝试导航到someRoute/123nginx 时,期望找到 123.htmlinside $uri/,这当然不会发生,因为它是动态路由。根据register.html,我真的不知道出了什么问题。

我如何获得someRoute/registersomeRoute/[id]工作?

标签: reactjsdockernginxnext.js

解决方案


推荐阅读