如何在不清除浏览器缓存的情况下反映网页上的css或js更改?

时间:2014-04-09 17:07:54

标签: jquery

我有一个基于页面jquery的Web应用程序,当在页面的css或js中进行任何更改时,用户需要清除浏览器缓存以查看所做更改的反映。如果用户第一次升级网页,是否有办法在不清除浏览器缓存的情况下反映网页上的更改。

4 个答案:

答案 0 :(得分:1)

基本上,为了防止缓存,您必须将以下标头发送到客户端:

Pragma: no-cache
Cache-Control: no-cache, no-store

您可以在此页面的不同平台上查看如何执行此操作:http://dontcache.me/hackers.html

答案 1 :(得分:0)

更改.htaccess文件中的缓存控制

答案 2 :(得分:0)

这些用户是您公司内的用户还是这些公共网络访问者?

为什么要清除缓存?

Ctrl + F5 应该可以正常工作或 Shift +鼠标单击刷新按钮。

如果您希望自动智能地重新加载资源,那么这可能非常困难,但这里有一个自动刷新CSS的链接:

http://cssrefresh.frebsite.nl/

不确定JS是否有任何东西:/

答案 3 :(得分:0)

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

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

然后......你的其他程序......

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