React App 回退到根索引,除非重置缓存
React App falls back to root index, unless resetting cache
在 Chrome 中,如果我请求 URL 例如https://example.com/privacy
,弹出的create-react-app
位于根web路径,响应是http://example.com/index.html
的内容!这是一个问题,因为 Web 根路径中存在一个带有 index.html
的静态 privacy
文件夹,如果需要,显然不应该 return 根网页。我怀疑这是一个或多个服务人员的工作。我不太熟悉它们是如何工作的,但目前我唯一想到的就是让 https://example.com/privacy
方案起作用,即 return https://example.com/privacy/index.html
而不是 https://example.com/index.html
。
我试过将 service-worker.js
重命名为 service-worker__.js
,因为现在感觉它造成的麻烦多于好处,但这并没有解决问题。
正如@Tholle 指出的那样,解决方案是在 index.js
中调用 unregister()
来注销服务工作者。
如果您排除了您的服务器没有为每个 404 请求提供服务 index.html
,那么很可能是 service worker 出了问题。
您可以导入 unregister
函数并调用它来注销服务工作者。
src/index.js
import { unregister } from './registerServiceWorker';
unregister();
在 Chrome 中,如果我请求 URL 例如https://example.com/privacy
,弹出的create-react-app
位于根web路径,响应是http://example.com/index.html
的内容!这是一个问题,因为 Web 根路径中存在一个带有 index.html
的静态 privacy
文件夹,如果需要,显然不应该 return 根网页。我怀疑这是一个或多个服务人员的工作。我不太熟悉它们是如何工作的,但目前我唯一想到的就是让 https://example.com/privacy
方案起作用,即 return https://example.com/privacy/index.html
而不是 https://example.com/index.html
。
我试过将 service-worker.js
重命名为 service-worker__.js
,因为现在感觉它造成的麻烦多于好处,但这并没有解决问题。
正如@Tholle 指出的那样,解决方案是在 index.js
中调用 unregister()
来注销服务工作者。
如果您排除了您的服务器没有为每个 404 请求提供服务 index.html
,那么很可能是 service worker 出了问题。
您可以导入 unregister
函数并调用它来注销服务工作者。
src/index.js
import { unregister } from './registerServiceWorker';
unregister();