由于缓存的JS文件,JavaScript函数无法正常工作

3

我有一些JS文件,每个文件都需要在我的管理面板的每个页面上使用,例如:functions.js、login.js等等。

我使用gulp将所有这些文件(并将它们压缩)合并成一个文件:admin.js

两天前,我编写了一个名为“changeTicketStatus”的新函数,但有一个问题:缓存

  • 每当有人访问我的网站时,新函数尚未生效。

  • 当他们手动访问浏览器中的http://website/js/admin.js时,他们看到新函数。

  • 当他们通过源代码来检查(在Chrome开发工具中),他们看不到该函数。

由于我们使用CloudFlare进行缓存,我认为这可能是问题所在,但我们已经清除了CF上的所有缓存,仍然没有解决问题。

尝试访问我的网站的人已经清除了他们的缓存。 它在隐身模式下(无痕浏览)可以使用,所以我想这应该与缓存有关......我只是觉得非常奇怪,即使清除了缓存,该函数仍然不会出现在开发工具中。

如果有人能帮我解决这个问题,我将不胜感激。我已经没有任何想法了,我真的不知道该如何解决这个问题。

Kenny

1个回答

0
你能否在包含脚本的结尾添加一个随机查询字符串?
例如:
instead of <script src="app.js"></script>
use this <script src="app.js?v234123"></script>

这将解决您关于缓存的问题。


这确实有效,但为什么清除缓存后它就无法工作了呢? - Kenny Hietbrink
我的观点是你正在使用CloudFlare,它使用自己的缓存系统以更快地提供页面。清除缓存时,您也会清除客户端浏览器的缓存。实际上这样做是有效的,但是CloudFlare仍然具有源终端用户的缓存。我希望这将澄清您的问题。 - Serdar AGLAMIS
我没有太多使用CF的经验,对于这种情况我也不了解,很抱歉。你可以尝试添加随机查询字符串来解决问题 :) - Serdar AGLAMIS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接