【发布时间】:2020-09-24 05:48:23
【问题描述】:
我将 Nextjs 用于前端应用程序,将 dotnet core 3.1 用于 Web API。有些页面是静态的,有些是动态的,我按照官方documentation 来实现这一点。在开发模式(本地机器)上一切正常。静态和动态路由都正常工作并从 dontnet 核心 Web API 获取数据。
但是,在按照以下步骤发布 Nextjs 应用程序时:
- 纱线构建
- 纱线出口
- 在项目的根目录下会生成一个 out 文件夹
- 该文件夹的内容已上传到服务器
之后,部署的文件被上传,当登录到应用程序时,它会重定向到主页(直到这里工作正常),但只要我点击重新加载页面按钮(Chrome),我就会进入 404错误。
我发现这个 Stackoverflow link 有同样的问题,但答案是使用 Express 进行服务器路由。在我的情况下,我使用 dotnet core Web API 来处理服务器请求。所以,不知道该怎么做。
有没有办法从客户端解决这个问题?可能是缺少配置?
我在导出时唯一注意到的是一条消息:未找到“exportPathMap”。不知道是不是这个原因。
【问题讨论】:
-
嗨,迈克,几个问题和考虑: 1.
"The content of that folder is uploaded to the server"它是一个静态网络托管(S3、blob 存储等)? 2.页面account.html在导出文件里面吗?如果是这样,如果您打开http://yourpath/account.html它会打开页面? 3."After, the deployed files are uploaded and when loging to the app, it redirects to the main page (until here is working OK)"我认为是因为您正在执行完整的客户端导航(带有来自 html 的推送历史记录),但是一旦您重新加载页面,路径/account/未注册。 -
嗨@Pierfrancesco,对于问题#1 和#2,是的。我们使用 AWS S3 来托管站点,account.html 位于它们之间。另外,是的,我们正在进行客户验证。你知道我如何注册/account/,所以它可以在重新加载后呈现?
-
你好,这是“自制”的东西,但在同样的情况下(我认为)帮助了我。当您在 S3 上上传文件(启用网站托管:docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)时,请尝试删除导出生成的所有文件的文件扩展名中的
.html,index.html除外。然后将ContentType设置为text/html用于您删除扩展名的所有文件。 -
这方面有什么更新吗?
-
导出nextjs静态博客时如何去掉.html扩展名?
标签: reactjs react-router next.js