【问题标题】:Why does Create React App hosted on ZEIT Now not show a 404 response?为什么在 ZEIT Now 上托管的 Create React App 不显示 404 响应?
【发布时间】:2020-02-06 21:30:13
【问题描述】:

如果我在 Google App Engine 上为我的网站尝试 mywebsite.com/NON-EXISTENT-PATH,我会收到 404 响应。

但是,如果我将 create-react-app 的本地开发服务器用于另一个应用程序,如果我尝试localhost:3000/NON-EXISTENT-PATH,它只会给我localhost:3000 的响应,而不是 404。这也适用于在 ZEIT Now 上托管应用程序.为什么是这样?

【问题讨论】:

    标签: create-react-app vercel


    【解决方案1】:

    自动检测创建 React 应用程序并添加通配符路由,以便任何与静态文件不匹配的路径都将提供 /index.html

    https://zeit.co/docs/v2/build-step#optimized-frameworks

    这对于不为每个页面创建 HTML 文件而是创建单个 index.html 文件并使用 JavaScript 在前端路由的框架来说是必需的。

    这种模式通常称为SPA

    【讨论】:

    • 如果我 fetch() 一个 JSON 文件并且它丢失了,我希望它以 404 而不是 SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data 失败。这只是 SPA 的一个缺点吗?
    • 是的,这是一个缺点。您可能想尝试使用静态站点生成器 (SSG),而不是 Next.js
    • 谢谢。关于。您的答案,编辑它以反映只有未找到的路径到达通配符路径?
    猜你喜欢
    • 2020-08-03
    • 2018-09-09
    • 1970-01-01
    • 2019-01-22
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多