如何防止 Angular 7 站点上的浏览器缓存?

Gop*_*ena 3 caching cache-control browser-cache angular angular7

我在生产环境中有一个 Web 应用程序。用户每天都在使用它,当我发布更新并且用户返回 Web 应用程序时,他/她会查看 Web 应用程序的旧版本。他需要刷新浏览器才能加载新版本。我怎么解决这个问题?每次发布更新(每周 3-4 次)时,我都无法告诉数百名用户刷新页面。我使用以下内容来构建我的前端应用程序:Angular7 with angular-cli。

Gok*_*oku 5

ng build --aot --output-hashing=all
Run Code Online (Sandbox Code Playgroud)

这使得散列必须与服务器端匹配。如果前端的缓存版本与哈希不同,他们将获得应用程序的新版本。这假设您使用的是使用 angular CLI 的标准构建方式。

如果你不是,你总是可以尝试像下面这样的hackish(未经测试)

@Component({
templateUrl: './app/something/something/something.html?v=' + Math.random()
stylesUrls: ['./app/something/something/something.html?v=' + Math.random()]
})
Run Code Online (Sandbox Code Playgroud)

  • 您确定您使用的是正确的网址吗?如果您在后端使用全栈应用程序,则服务器端可能会提供除 /dist 文件夹之外的其他内容。例如,调试模式下的 Visual Studio IIS 将提供它配置的文件而不是 dist 文件夹(默认情况下,我记得在 2016 年) (2认同)