在 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)