相关疑难解决方法(0)

DOMException:无法在“History”上执行“replaceState”:带有 URL 的历史状态对象

在 Google 上打开缓存版本的网页时,React 应用程序出现以下错误。

DOMException:无法在“History”上执行“replaceState”:无法在来源为“https://webcache.googleusercontent.com”和 URL 为“https”的文档中创建 URL 为“https://projecturl”的历史状态对象: //webcache.googleusercontent.com/search?q=cache:X4dz2ukZZAYJ:https://projecturl/+&cd=1&hl=en&ct=clnk&gl=in'

在此处输入图片说明

在我们的应用程序中,我们使用 react-router-dom 并实现了服务器端渲染。在谷歌搜索中打开带有缓存选项的页面时,它首先加载页面几秒钟,然后在控制台中显示带有上述错误的空白页面。

在寻找解决方案时,我发现https://github.com/ReactTraining/react-router/issues/5801 与我的问题相关,但没有解决方案。

更新1:

同样的问题在这里被问到,但对于 Angular。虽然我无法理解答案中的解释以及它如何与我的问题相关。

我们正在使用React Loadable SSR Add-on来渲染我们的React应用程序。

更新 2:

在用于服务器端渲染的 npm 包的 Git 存储库上打开了相同的问题。 问题已打开

更新 3:

当我通过禁用安全性在谷歌浏览器中打开它时,该页面工作正常。因此它不应该与我的代码相关。

此外,在 bing 搜索引擎缓存版本中打开时会出现不同的错误:

脚本资源位于重定向之后,这是不允许的。

在此处输入图片说明

在 bing 和 yahoo 搜索引擎上,404 页面都出现在缓存版本中。

更新 4:

这是路由文件的外观:

import React from 'react';
import { Switch, Route } from 'react-router-dom';
import Loadable from 'react-loadable';
import {
  OTPNew,
  LoginNewFb,
  OnboardingWrapper,
  PageNotFound,
  SignUpSpecialty,
  SignUpDetails,
  Feed,
} from './lazy'; …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router server-side-rendering react-router-dom

8
推荐指数
1
解决办法
5718
查看次数