angular - 生成发布文件时不进行更改。角 8
问题描述
我有一个项目angular 8
,C # WebApi
我在IIS
服务器上发布,到目前为止,当我第一次发布时没有问题,但是在对我的应用程序进行更改并返回以生成文件时,说是在发布时版本 2,它不会在我Angular FrontEnd
进入应用程序时进行更改,仅在我重新加载页面时才会这样做ctrl + R
。
这对于使用该应用程序的用户来说是一个大问题,因为如果他们不重新加载,他们将继续使用第一个版本。
这是我生成文件的方式:
ng build --prod --output-hashing = all
此行生成以下文件:
我有这些代码行index.html
:
<meta http-equiv="Expires" content="0">
<meta http-equiv="Last-Modified" content="0">
<meta http-equiv="Cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
我不知道会发生什么,但只有在以这种方式重新加载页面时才采用新版本。
我希望它在生成文件时清理、强制和缓存。
有没有办法从代码或生成文件时做到这一点?
解决方案
据我所知,如果您的浏览器曾经访问过您的 Web 应用程序,它会将缓存存储在客户端。
如果修改内容并添加响应头,它不会重新向服务器发送请求,它会使用缓存页面。
要避免这种情况,唯一的方法是清除浏览器的缓存或使用 Ctrl+F5 刷新页面。那么如果你的响应头下一次包含 no-cache ,浏览器就不会再存储缓存了。
推荐阅读
- python - 在构建和训练 3D Keras U-NET 时遇到 ValueError
- node.js - MongoDB upsert 创建另一个实例
- jquery - 单选按钮在 jquery formbuilder 中不起作用
- airflow - Airflow:如何取出一个现在没有包含在 DAG 中的任务?
- flutter - Flutter - 如何在 sliverappbar 中添加自定义标签栏?
- javascript - Cypress Cucumber Step 运行多个步骤
- android - 如何更改已知项目保存在 SharedPrefrence 中并将图标设置为菜单中的收藏夹?
- powerbi - 如果为空则跳过一条记录
- eclipse - 更改scala编译器版本时找不到或加载主类错误
- webpack - 为 localhost 配置 HTTPS 以通过 USB 访问手机上的麦克风