Aks*_*mar 1 javascript typescript angular
我有一个有角度的应用程序,部署后我经常收到最终用户的抱怨,他们无法看到新功能(他们仍然必须在更改反映之前ctrl+ )。f5
我需要合并缓存清除吗?经过一番谷歌搜索后,我看到了以下命令:
ng build --output-hashing=all
Run Code Online (Sandbox Code Playgroud)
我尝试在部署管道中使用它,它能够解决一些问题,但不是全部。有一些更改我仍然需要做ctrl+ f5。
如何确保最终用户更新我的应用程序,而不要求他们清除自己的缓存?
{
"name": "portfolio",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"prod-build-dev-old": "ng build --prod --configuration=dev --build-optimizer",
"prod-build-dev": "ng build --prod --configuration=dev --build-optimizer --aot --output-hashing=all",
"prod-build-staging": "ng build --prod --configuration=staging --build-optimizer"
},
Run Code Online (Sandbox Code Playgroud)
我认为这是浏览器缓存的问题。尽管 Angular 默认情况下包含缓存清除,但它需要您手动关闭 index.html 上的缓存才能使其有机会运行。
我建议在您的中添加以下三行index.html:
<!doctype html>
<html>
<head>
...
<!-- Add the 3 following lines -->
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
...
</head>
<body>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
部署这些更新后,您的客户无需ctrl + f5在每次部署后都获得新功能。
有关浏览器缓存控制的更多信息,请查看: MDN 中的Cache-Control。
| 归档时间: |
|
| 查看次数: |
10014 次 |
| 最近记录: |