浏览器(Chrome、Safari等)继续显示旧的HTML网站,即使在更新之后

浏览器(Chrome、Safari等)继续显示旧的HTML网站,即使在更新之后,html,caching,browser,atom-editor,updating,Html,Caching,Browser,Atom Editor,Updating,我已经通过Atom建立了一个HTML、CSS、Bootstrap4等格式的网站。每次我进行更改并将新版本上载到托管平台(在我的例子中是HostPresto)时,浏览器都会加载以前的(大概是缓存的)版本。我知道浏览器使用缓存数据来加载和提高数据效率等。然而,我的目标是强制任何浏览器从头开始重新加载,只有在网站的某些部分发生更改时。我该怎么做 多年来,我在stackoverflow上看到了一些类似查询的答案,人们建议在每次加载cookie和缓存数据时使用网站标题中的代码来有效地擦除cookie和缓存

我已经通过Atom建立了一个HTML、CSS、Bootstrap4等格式的网站。每次我进行更改并将新版本上载到托管平台(在我的例子中是HostPresto)时,浏览器都会加载以前的(大概是缓存的)版本。我知道浏览器使用缓存数据来加载和提高数据效率等。然而,我的目标是强制任何浏览器从头开始重新加载,只有在网站的某些部分发生更改时。我该怎么做

多年来,我在stackoverflow上看到了一些类似查询的答案,人们建议在每次加载cookie和缓存数据时使用网站标题中的代码来有效地擦除cookie和缓存数据。我不想一直这样做,因为通常情况下,不会做出任何更改,我的网站效率也会降低

我的主机提供商说,如果每次只有一点变化时我上传所有网站文件,这将有所帮助。我今天尝试了这个,但它不起作用-我仍然需要清除缓存才能正确加载它


有人能帮我做些什么,让任何浏览器在我的网站发生更改时识别,以便它自动加载这些更改吗?谢谢

可以说,我已经解决了自己的问题,所以我想我应该把答案贴在这里,以防对其他人有所帮助

基本上,我注意到HTML文件总是反映最新的更改。然而,CSS文件不会。CSS文件是从浏览器缓存加载的罪魁祸首

为了纠正这一点,我已经开始向CSS文件添加版本控制,以强制浏览器仅在更新CSS时加载新的CSS文件。它的工作原理如下:

  • CSS文件的名称没有更改。也就是说,而且一直都是
    styles.css
    。你可以叫它别的东西

  • 在HTML文件的头部,我对CSS文件的旧调用是:

  • 新呼叫是:

我所做的只是将
?version=1.0
添加到HTML头中CSS文件名的末尾。如果版本号更改,浏览器将加载最新版本。如果版本号相同,则不会加载最新版本


我想这对一些人来说是非常简单的,但由于我自己已经成功地对它进行了排序,我认为与其他人分享可能是有用的。现在不需要在HTML头中添加硬代码,因为硬代码会导致效率降低,从而不必要地从头开始重新加载

如果不开发一个
解析器
,有效地将您的旧站点与(可能的)“新”站点进行比较,并在页面加载时运行它,我不知道您将如何做到这一点。即使实现了这一点,也会大大降低性能。在IMO中,您可以在页面加载时强制清除缓存,也可以手动清除缓存以解决此问题:/不是答案,只是建议。因为您当前正在构建站点,一旦完成,就不需要每次都重置缓存的数据。在使用Chrome进行开发时,您可以通过按住“重新加载”按钮,然后选择“清空缓存和硬重新加载”,清空缓存并立即重新加载。请注意,您需要打开检查员才能使其正常工作。谢谢各位的建议。我将坚持当前的“方法”,通过清空缓存强制重新加载网站。我根本不想大幅降低性能!