Next JS 动态路由不适用于导出生产静态构建

hit*_*tar 10 reactjs next.js

我正在使用 Next 构建一个应用程序。使用嵌套动态路由。在开发模式下,一切都按预期进行。但是当我在生产环境中部署应用程序时,当你点击重新加载(如 F5)时,它会给你 404

使用下一个版本:9.5.2

我的目录结构是这样的:

pages
 -users
    -[page]
        - [id].tsx
        - index.tsx
    -index.tsx
Run Code Online (Sandbox Code Playgroud)

以下是我链接到动态页面的方法:

<Link href='/users/[page]/[id]' as='/users/edit/${id}'>
<a>Edit</a> </Link>
Run Code Online (Sandbox Code Playgroud)

这里是示例代码 user/[page]/[id].tsx

class User extends React.Component {
  constructor(props) {
     super(props);  
     this.state = {
     },
  }; 
 static getInitialProps({query}) {
   return {query}
 }
  async componentDidMount(){
     const { query } = this.props;
      if(query?.id){
         await this.props.getUserById(query?.id);
      }
  }
}
Run Code Online (Sandbox Code Playgroud)

这里是静态构建命令

`npm run export`
Run Code Online (Sandbox Code Playgroud)

这里静态构建

我的构建是我在 Web 服务器(Apache、Nginx)上托管的一组 HTML、js、css 资源。

如果我从index.tsx页面点击链接users,我的URL看起来是“/users/edit/1/”并且工作正常,但是如果我刷新页面,我会收到错误404。在开发模式刷新页面中,一切工作正常。我被这个问题困扰了很多天。你知道我该如何解决这个问题吗?