reactjs - Nextjs 404 重新加载/刷新操作错误

标签 reactjs react-router next.js

我将 Nextjs 用于前端应用程序,并将 dotnet core 3.1 用于 Web API。有些页面是静态的,有些页面是动态的我关注了官方 documentation为达到这个。在开发模式(本地机器)上一切正常。静态和动态路由都正常工作并从 dontnet 核心 Web API 获取数据。

但是,在按照以下步骤发布 Nextjs 应用程序时:

  • yarn 构建
  • yarn 导出
  • 在项目的根目录生成一个out文件夹
  • 该文件夹的内容上传到服务器

  • 之后,部署的文件被上传,当登录到应用程序时,它会重定向到主页面(直到这里工作正常),但是一旦我点击重新加载页面按钮(Chrome),我就会收到 404 错误。

    enter image description here

    查看开发人员工具中的控制台,我得到了这个:
    enter image description here

    我找到了这个 Stackoverflow link有同样的问题,但答案是使用 Express 进行服务器路由。就我而言,我使用 dotnet core Web API 来处理服务器请求。所以,不知道该怎么做。

    有没有办法从客户端解决这个问题?可能是缺少配置?

    我在导出时唯一注意到的是一条消息:未找到“exportPathMap” .不知道是不是这个原因。

    enter image description here

    最佳答案

    当构建和导出后的所有页面都具有“.html”扩展名时,我在 react 中遇到了类似的问题。我在 中通过以下代码解决了它next.config.js 文件。
    next.config.js

    module.exports = {
      exportTrailingSlash: true,
    }
    
    备注 : 在开发过程中不要使用上面的代码。在构建项目之前使用它。
    您可以在此处找到文档链接:https://nextjs.org/docs/api-reference/next.config.js/exportPathMap#adding-a-trailing-slash .

    更新
    上面的代码用于 next.js v 9.3.4 我当时正在使用。对于较新版本,应根据文档使用以下代码。
    next.config.js
    module.exports = {
      trailingSlash: true,
    }
    

    关于reactjs - Nextjs 404 重新加载/刷新操作错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62208254/

    相关文章:

    javascript - 与 React 路由器相比,NextJs 路由器似乎非常慢

    javascript - 使用 React.js 显示列表

    javascript - 如何使用react-router渲染嵌套组件

    javascript - React js 工作流程,如何在父级别处理动态子项

    javascript - 使用 React、博客文章和 Wordpress API 进行动态路由

    javascript - React Router 导致 Reflux 存储中的 AJAX 调用失败

    javascript - 对使用 NextJS 和 Express 的 Service Worker 感到困惑

    javascript - 如何将页面/应用程序文件夹重定向到 next.js 中的子域

    javascript - Recharts 自定义点

    javascript - ReactJs - 隐藏状态和 Prop