【问题标题】:JavaScript function not working due to cached JS file由于缓存的 JS 文件,JavaScript 函数无法正常工作
【发布时间】:2017-06-09 11:27:45
【问题描述】:

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

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

前两天我做了一个新的函数叫“changeTicketStatus”,但是有一个问题:缓存

  • 每当有人访问我的网站时,新功能还没有工作。

  • 当他们在浏览器中手动访问 http://website/js/admin.js 时,他们确实看到了新功能。

  • 当他们通过源检查(在 chrome 开发工具中)时,他们看不到函数。

由于我们使用 CloudFlare 进行缓存,我认为这可能是问题所在,但我们已经清除了 CF 上的所有缓存,但仍然无法正常工作。

试图访问我网站的人也已经清除了他们的缓存。 它确实可以在私人模式(隐身)下工作,所以我想它应该与缓存相关......我只是觉得即使在清除缓存后,该功能仍然没有出现在开发工具中,这真的很奇怪.

如果有人可以帮助我,我将不胜感激。我没有想法,我真的不知道如何解决这个问题。

肯尼

【问题讨论】:

    标签: javascript google-chrome caching cloudflare


    【解决方案1】:

    你能在包含脚本的末尾添加一个随机查询字符串吗

    例如:

    instead of <script src="app.js"></script>
    use this <script src="app.js?v234123"></script>
    

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

    【讨论】:

    • 这个确实可以,但是为什么不清除缓存呢?
    • 我的看法是您使用的是 CloudFlare,它使用自己的缓存系统来更快地提供页面服务。通过清除缓存,您正在清除客户端浏览器的缓存。事实上,这项工作,但试图达到的原始源最终用户仍然有 CloudFlare 的缓存。我希望这能澄清您的问题。
    • 我没有经常使用CF,所以我对情况没有更多的了解抱歉。您至少现在可以尝试添加随机查询字符串 :)
    猜你喜欢
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 2016-11-30
    相关资源
    最近更新 更多