Reactjs React应用程序返回到根索引,除非重置缓存

Reactjs React应用程序返回到根索引,除非重置缓存,reactjs,service-worker,create-react-app,Reactjs,Service Worker,Create React App,在Chrome中,如果我请求一个URL,例如https://example.com/privacy,当弹出的create react应用程序位于根web路径时,响应是http://example.com/index.html!这是一个问题,因为web根路径中存在带有index.html的静态隐私文件夹,如果请求,显然不应返回根网页。我怀疑这是一名或多名服务人员的工作。我对它们的工作原理不太熟悉,但目前我唯一想做的就是得到https://example.com/privacy工作场景,即返回htt

在Chrome中,如果我请求一个URL,例如
https://example.com/privacy
,当弹出的
create react应用程序位于根web路径时,响应是
http://example.com/index.html
!这是一个问题,因为web根路径中存在带有
index.html
的静态
隐私
文件夹,如果请求,显然不应返回根网页。我怀疑这是一名或多名服务人员的工作。我对它们的工作原理不太熟悉,但目前我唯一想做的就是得到
https://example.com/privacy
工作场景,即返回
https://example.com/privacy/index.html
而非
https://example.com/index.html


我曾尝试将
服务工作者.js
重命名为
服务工作者u u; js
,因为现在感觉它带来的麻烦比好的多,但这并没有解决问题。

正如@Tholle指出的,解决方案是调用
unregister()
index.js
中取消注册服务人员。

如果您排除了您的服务器没有为每一个404请求提供
index.html
服务,那么很可能是服务人员出了问题

您可以导入
unregister
函数并调用该函数来注销服务工作者

src/index.js

import { unregister } from './registerServiceWorker';

unregister();

这是在开发还是在生产?如果在开发中,Webpack dev服务器将使用
index.html
为taht给出的每个404请求提供服务。@Thole React应用程序是在生产配置下运行
npm run build
构建的,构建的文件已放在服务器上。如果您知道不是服务器为所有404请求提供
index.html
,那么这可能值得一看。您只需从“/registerServiceWorker”编写
import{unregister};注销()
在您的
src/index.js
文件中。只需补充一点,当
隐私
文件明显存在时,请求
隐私
示例将返回404响应,这似乎有些奇怪。也许这与客户端缓存有关?@JohanSvensson是的,我想你是对的。这很可能是一个缓存响应。