reactjs - 更换服务器后,部分用户遇到白页?
问题描述
更换服务器后,部分用户想进入网站时遇到白页。浏览器清除缓存后即可进入。我怎么能在没有用户注意的情况下做到这一点?
或者您有其他解决问题的建议吗?
当我检查它时,似乎缓存目录在 jenkins 作业中输入为 ~/.npm 或 %APP_DATA%\npm-cache 。当我检查服务器时,有 ~/.npm/_cacache 目录。里面的 tmp 目录是更新的并且是空的。但其他目录有过时的记录(content-v2 和 index-v5)
解决方案
这主要是因为index.html
文件缓存在客户端。在 HTML 文件中,它尝试导入一些 JS 文件。我不确定您使用的是哪个 React 框架,但大多数(如果不是全部)将生成捆绑的 JS 文件,文件名中带有哈希,例如component-js-accf25d88e9116ff2515.js
. 这确保了每个构建中的文件名总是不同的。
现在,如果客户端已缓存index.html
,它将包含您的 JS 包的旧文件名。当您更新应用程序时,那些旧文件将不再存在。如果您使用的是客户端框架,如create-react-app
,则不会获取任何 JS 包并导致空的 HTML 内容,即白屏。
推荐阅读
- c# - 最多 3 个字母(两种情况)的正则表达式,后跟任意 # 个数字
- php - PHP并行如何将变量传递给线程?
- python - 循环遍历两个列表不起作用
- python - 计算列表中字典值的中位数
- javascript - 是否可以从 Web 控制台访问 Svelte 商店?
- android - android:scheme 必须在主活动或启动屏幕活动上设置?
- powershell - Powershell、提取存档和子目录
- javascript - 如何让 JavaScript 事件监听器检测动态添加的复选框事件
- nestjs - 在 Guard 中访问请求的原始正文?
- c# - 如何在 xamarin 中以离线模式使用 Firebase?