【问题标题】:Issue Clearing cache in Chrome问题清除 Chrome 中的缓存
【发布时间】:2017-05-04 13:44:51
【问题描述】:

我有一个使用 Angular 作为前端的 Java/Spring MVC WebApp。 ui 应用程序作为 Web 应用程序的一部分部署在 src>main>webapp 文件夹中。问题是当我对 CSS 或 HTML 文件进行任何更改时,都不会立即反映出来。我也试过清除缓存和硬重置,但无济于事。

我也尝试在隐身模式下运行该应用,但它不起作用。

请帮忙。

【问题讨论】:

  • 按 ctrl +f5 清除缓存并检查您的 css 是否更新

标签: angularjs spring browser-cache


【解决方案1】:

如果您更改服务器上文件的日期和时间,可以单独重新加载特定资源。 “清除缓存”并不像应有的那么容易。我没有清除浏览器上的缓存,而是意识到“触摸”缓存的服务器文件实际上会更改服务器上缓存的源文件的日期和时间(在 Edge、Chrome 和 Firefox 上测试),并且大多数浏览器会自动下载最您服务器上最新内容的最新副本(代码、图形以及任何多媒体)。我建议您在程序运行之前复制服务器上最新的脚本和“做触摸的事情”解决方案,这样它就会将所有问题文件的日期更改为最新的日期和时间,然后它将新副本下载到您的浏览器:

    <?php
    touch('/www/sample/file1.css');
    touch('/www/sample/file2.css');
    touch('/www/sample/file2.css'); 
    ?>

然后......你的程序的其余部分......

我花了一些时间来解决这个问题(因为许多浏览器对不同命令的行为不同,但它们都会检查文件的时间并与您在浏览器中下载的副本进行比较,如果日期和时间不同,则会进行刷新) , 如果你不能走所谓的正确方法,总有另一种可用和更好的解决方案。最好的问候和快乐的露营。顺便说一下 touch();或替代方案适用于许多编程语言,包括 javascript bash sh php,您可以在 html 中包含或调用它们。

【讨论】:

  • 解决方案可能与PHP有关。我不太确定Java。当您说更改文件的日期和时间时,您是什么意思。谢谢。
  • 它确实适用于 Javascript,因为它已在此处得到回答 stackoverflow.com/questions/1406473/… 我也将它与 sh bash 和其他编程语言一起使用。如果您只完成“触摸”而不对文件进行任何修改,而只是当前日期和时间,浏览器会认为它是文件的新版本,并立即下载当前版本并替换浏览器上的旧版本,经过测试当前的 Edge、Chrome 和 FFox 致以最诚挚的问候... 注意:要使其正常工作,它必须是它在代码开头所做的第一件事。
  • @Luis JavaScript 确实与 Java 不同。 touch 是一个常见的 Unix 命令,由 php 包装。没有 Node 的 JavaScript 通常无法访问文件系统,所以不,它不能接触文件。
  • 使用 bash 脚本来调用触摸,它可以工作,我将它们放在我的路由器上,以便在程序运行之前为用户清除缓存。有用。我的所有路由器上都安装了它们。
猜你喜欢
  • 2015-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 2013-03-26
  • 2016-10-26
  • 2017-05-19
  • 1970-01-01
相关资源
最近更新 更多