React Router BrowserRouter 在不通过主页点击直接进入子页面时会导致“404 Not Found - nginx”错误

2023-12-29

我正在使用 React Router 为多页面网站进行路由。当尝试直接进入子页面时https://test0809.herokuapp.com/signin https://test0809.herokuapp.com/signin您会收到“404 Not Found -nginx”错误(为了能够看到此问题,您可能需要以隐身模式访问此链接,这样就没有缓存)。如果您从主页访问,所有链接都可以正常工作:test0809.herokuapp.com/。我使用的是 BrowserRouter,并且通过将 BrowserRouter 更改为 HashRouter 能够消除“404 未找到”错误,这为我的所有网址提供了“#”符号。除了网址中包含“#”的所有问题之外,最大的问题是我需要在我的网站中实现 LinkedIn Auth,而 LinkedIn OAuth 2.0 不允许重定向 URL 包含 #。LinkedIn OAuth 2.0 错误屏幕抓取 https://i.stack.imgur.com/epVHg.png

import React, { Component } from 'react'
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
import LinkedIn from 'react-linkedin-login'
const Home = () => <div><h2>Home</h2></div>
const About = () => <div><h2>About</h2></div>
class Signin extends Component {
  callbackLinkedIn = code => {
    console.log(1, code)
  }
  render() {
      return (
          <div>
              <h2>Signin</h2>
              <LinkedIn
                  clientId="clientID"
                  callback={this.callbackLinkedIn}
              >
          </div>
      )
  }
}
const BasicExample = () =>
  <Router>
    <div>
      <ul>
         <li>
           <Link to="/">Home</Link>
         </li>
         <li>
           <Link to="/about">About</Link>
         </li>
         <li>
           <Link to="/signin">Signin</Link>
         </li>
      </ul>
  <hr />

      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />
      <Route path="/signin" component={Signin} />
    </div>
  </Router>
export default BasicExample

关于解决方法有什么建议吗?

背景:我使用 create-react-app 启动了该项目。 GitHub 仓库:/debelopumento/test0809


问题是 nginx 不知道该怎么办/signin。您需要更改 nginx 配置(通常在/etc/nginx/conf.d/)为您服务index.html无论路线如何。这是一个可能有帮助的 nginx 配置示例:

server {
  listen 80 default_server;
  server_name /var/www/example.com;

  root /var/www/example.com;
  index index.html index.htm;      

  location ~* \.(?:manifest|appcache|html?|xml|json)$ {
    expires -1;
    # access_log logs/static.log; # I don't usually include a static log
  }

  location ~* \.(?:css|js)$ {
    try_files $uri =404;
    expires 1y;
    access_log off;
    add_header Cache-Control "public";
  }

  # Any route containing a file extension (e.g. /devicesfile.js)
  location ~ ^.+\..+$ {
    try_files $uri =404;
  }

  # Any route that doesn't have a file extension (e.g. /devices)
  location / {
    try_files $uri $uri/ /index.html;
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Router BrowserRouter 在不通过主页点击直接进入子页面时会导致“404 Not Found - nginx”错误 的相关文章

  • 单击 DIV 时滚动到顶部? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何识别当前打开的每个单独的浏览器窗口?

    如何使用 javascript 唯一地识别当前为所有主要浏览器打开的每个单独的浏览器窗口 让我解释一下我需要了解的内容 并考虑以下场景 我有 3 个当前打开的浏览器窗口 任何现代浏览器 即 Chrome Firefox 等 每个窗口都包含多
  • Javascript 的 toUpperCase() 语言安全吗?

    请问Ja vascript的String原型方法toUpperCase 在每种支持 UTF 8 的语言 字符集中提供自然预期的结果 我尝试过简体中文 韩语 泰米尔语 日语和西里尔语 到目前为止结果似乎是合理的 我可以信赖该方法是语言安全的吗
  • 无限水平滚动 Div

    我需要一个 div 当您将鼠标进一步向右或向左移动时 它会水平滚动 我发现 Smooth Div Scroll 插件 http www smoothdivscroll com 非常接近我的需要 然而 这存在一些问题 我需要能够使滚动元素从设
  • Typescript:如何在 Redux 中输入 Dispatch

    例如我想删除dispatch any here export const fetchAllAssets gt dispatch any gt dispatch actionGetAllAssets return fetchAll getPr
  • 打开一个新的浏览器窗口/iframe 并在 TEXTAREA 中从 HTML 创建新文档?

    我正在尝试使用 HTML5 的新离线功能编写一个 Web 应用程序 在此应用程序中 我希望能够编辑一些 HTML 完整文档 而不是片段
  • 使用 jquery UI 调整大小的分屏 div

    我心中有一个设计 涉及 html 中的拆分面板视图 类似于 winforms 拆分面板 我一直在尝试jQuery UI 可调整大小 http jqueryui com demos resizable我喜欢这个功能 我只是似乎无法协调两者的大
  • Javascript If 语句的语义是什么

    我一直认为 if 语句本质上比较它的论点类似于 true 然而 Firebug 中的以下实验证实了我最担心的事情 在编写 Javascript 15 年之后 我仍然不知道 WTF 发生了什么 gt gt gt true false gt g
  • 是否可以加载本地版本的 JavaScript 文件而不是服务器版本?

    只是有一个简单的问题要抛出 看看是否有解决方案 假设我无法访问服务器 我加载一个网页 发现他们有一个从子文件夹加载的 Javascript 文件 比方说 scripts js some js 现在 我想在本地对此文件进行更改 并针对整个站点
  • 使用 javascript/jquery 检查 .css 样式表的名称

    我正在尝试为论坛制作一个小 chrome 扩展 但我只希望它在论坛的某个区域中工作 问题是我不能只做 matches subforum 因为该论坛中的线程无法通过 URL 区分它们所在的子论坛 subforum 有自己的 css 样式表 所
  • 缩放对象上的弹跳动画

    拥有对象比例 然后在返回到原始比例因子之前以该比例因子执行弹跳动画的最佳方法是什么 我意识到我可以做一些事情 比如将其缩放到 2 2 然后 1 8 然后 2 0 但我正在寻找一种方法 您只需在比例因子上执行弹跳动画 因为我的比例因子会改变
  • 如何在phonegap中同时使用相机API选择多个图像?

    如何同时选择或拾取多个图像phonegap camera API使用时Camera DestinationType FILE URI 我一次只能选择一张图像 我可以使用以下命令在 SD 卡中选择多个文件 包括 txt pdf this ht
  • 如何在 React 应用程序中访问浏览器 cookie

    这个问题有点受欢迎 但我没有这么幸运 我主要是一名后端人员 所以我一边工作一边学习 我有一个名为connect sid和价值12345 我在 chrome 开发工具中看到了这一点 在我的反应应用程序中 我控制台记录了document coo
  • 如何沿着 Parse Promise 链传递额外数据[重复]

    这个问题在这里已经有答案了 在我的 Parse Cloude 代码中 我需要运行几个连续的查询 每个查询都使用 find Example var promise firstQuery get objectId then function r
  • 在 Node.js 中封装 require 可以解决相对路径调用

    我正在尝试创建一个 require 包装器来加载依赖项 但我发现很难让它像原始的 require 函数一样工作 当路径是相对路径时 包装器无法解析为正确的路径 因为我的加载程序和调用程序文件不在同一文件夹中 这是一个简化的描述 index
  • 动态添加项目到放大弹出画廊

    有没有办法动态添加图库项目华丽的弹出窗口 http dimsemenov com plugins magnific popup 那已经开放了 或更新当前项目 找不到关于 in 的任何内容插件文档 http dimsemenov com pl
  • 但为什么浏览器 DOM 经过 10 年的努力仍然这么慢?

    Web 浏览器 DOM 自 90 年代末以来就已存在 但它仍然是性能 速度方面最大的限制之一 我们拥有来自 Google Mozilla Microsoft Opera W3C 和其他各种组织的一些世界上最聪明的人才 为我们所有人致力于 W
  • PhoneGap文件传输错误1、哪里写FileTransfers?

    相关 https stackoverflow com questions 21044197 download file and store them locally in sdcard using phonegapbuild https s
  • javascript:新日期,缺少年份

    我打电话给 new Date Jan 4 发现默认年份是2001年 a new Date Jan 4 Thu Jan 04 2001 00 00 00 GMT 0500 EST 有什么办法可以将默认年份设置为 2011 年吗 更新 我知道我
  • 获取类的公共属性而不创建它的实例?

    假设我们有一个 JavaScript 类 var Person function function Person name surname this name name this surname surname Person prototy

随机推荐

  • `useTheme` 必须在 `NativeBaseConfigProvider` 中使用

    在我的项目中 我遇到了上述错误 谁能告诉我如何解决这个错误 我遇到的错误是 Error useTheme必须在以下时间内使用NativeBaseConfigProvider 该错误位于 in Container in ProductCont
  • android中的PeerConnection实例总是为空?

    我必须在 android 应用程序中实现 WebRTC 因为我正在使用libjingle库 版本 11139 在此我总是得到pc PeerConnection class instance 始终为空 我已经检查过的值 factory Pee
  • 如何从 C# 中的字符串中删除 \r\n?

    我正在尝试找出一种简单的方法从字符串中删除 r n 例子 文本 这个 is a string r n这个 is a string r n I tried text Replace r n and text Replace r n strin
  • Postgres表列名限制?

    我在 psql 中这样做了 CREATE TABLE IF NOT EXISTS apiss skey TEXT time INTEGER user TEXT ip TEXT I get ERROR syntax error at or n
  • 无法找到 Spring NamespaceHandler 错误

    我已经遇到这个错误近一周了 我正准备屈服 我已经使用 Maven2 来制作大 jar 文件 当我使用以下命令运行 jar 文件时 java jar someJar jar 我收到此错误 ERROR 27 55 13 10 55 Launch
  • 如何将 numpy 数组从某一行开始写入 .txt 文件?

    我需要将 3 个 numpy 数组写入 txt 文件 文件头看起来像这样 Filexy time operation1 operation2 numpy 数组如下所示 time np array 0 60 120 180 operation
  • 拦截 SimpleCursorAdapter 操作

    我正在编写一个应用程序 它使用 SimpleCursorAdapter 来显示 SQLite 数据库中的项目列表 该应用程序是一个列表应用程序 它允许用户创建项目列表 数据库中有一个字段用于跟踪用户是否希望列表项的文本被划掉 基本上 我想拦
  • 对 Visual Studio 2012 VSIX 扩展进行数字签名

    我正在尝试签署一份Visual Studio 2012 extension被封装为VSIX file 我已按照以下说明进行操作http www jeff wilcox name 2010 03 vsixcodesigning http ww
  • 将 Google Play 服务添加到 Eclipse 项目

    我已经红了好几个了posts https stackoverflow com questions 14230808 google map android api v2 crashed和文章 但它对我不起作用 我无法在我的项目中添加 使用 G
  • 如何编辑现有的 VS 代码片段

    有没有办法删除或编辑 Visual Studio CODE 中的一些默认代码片段 例如 当我输入 req TAB 我需要require not requestAnimationFrame 扩展片段可以在下面的每个片段目录中找到 如果扩展中有
  • 如何使用 angularjs 检测浏览器?

    我是 AngularJS 的新手 如何在 angularjs 中检测 userAgent 可以在控制器中使用它吗 尝试了类似下面的东西 但没有运气 var browserVersion int msie d exec lowercase n
  • 在 Actionscript 3 项目中显示 HTML

    Folks 我出于 SEO 目的从 Drupal 后端提取所有 Flash 纯 AS3 项目 而不是 Flash CS3 内容 这非常有效 只是 TextField 对象中内置的 HTML 渲染还有很多不足之处 谁能推荐一些允许我显示 HT
  • 以编程方式更改 Eclipse 中的背景颜色

    我有一个关于 eclipse 插件开发的问题 有什么办法吗 通过它我可以以编程方式更改 Eclipse 中的背景颜色 我可以通过调用更改文本前景色 ITextViewer 中的 setTextColor 颜色 偏移量 长度 controlR
  • 按 Ctrl+C 后,如何让 Python 在程序停止之前完成作业?

    我有 4 个这样的工作的无限循环 list1 while 1 try job1 a B job2 c a accd job3 d len c job4 list1 append d except KeyboardInterrupt save
  • word2vec - KeyError:“单词 X 不在词汇表中”

    使用Word2Vec模块的实现gensim为了为我在纯文本文件中拥有的句子构建单词嵌入 尽管这个词happy在词汇表中定义 得到错误KeyError word happy not in vocabulary 尝试将给出的答案应用到类似的问题
  • 为什么建议避免使用 .innerHTML?

    抱歉 我是 JavaScript 菜鸟 但是谁能解释一下为什么建议不要使用 innerHTML 当我们有更快 更容易的东西时 innerHTML 为什么我们不应该使用它 innerHTML是一把大锤 它将清除所选 DOM 元素的内容 并用当
  • C# - 外键引用无效表 - 基本迁移不起作用

    尝试用 C 制作我的第一个项目 然而 到目前为止 这非常令人沮丧 这是一个我无法解决的问题 因为我看不出有什么问题 我试图在我的数据库中进行简单的迁移 用户迁移文件 public override void Up CreateTable d
  • 为什么 ServiceWorker 无法访问 Cookie

    据我所知服务人员无法访问 cookie 因此 我在为我的网站实施软件时面临很多问题 我想知道是什么原因服务人员无法访问 cookie 现在我正在使用消息传递将 cookie 内容传达给服务人员 有没有更好的方法或技巧可以更有效地做到这一点
  • 什么时候提交 FragmentTransaction 是安全的?

    根据docs https developer android com reference android app FragmentManager html 片段事务只能在事务之前创建 提交 保存其状态的活动 如果您尝试在之后提交交易 Act
  • React Router BrowserRouter 在不通过主页点击直接进入子页面时会导致“404 Not Found - nginx”错误

    我正在使用 React Router 为多页面网站进行路由 当尝试直接进入子页面时https test0809 herokuapp com signin https test0809 herokuapp com signin您会收到 404