【问题标题】:How to make chrome to force reload JS from my web server? [duplicate]如何让 chrome 从我的网络服务器强制重新加载 JS? [复制]
【发布时间】:2017-12-21 10:37:07
【问题描述】:

我有一个 PHP 网站,其中包含许多带有标签的 JS 和 CSS 文件。问题是每当我更新任何 JS 或 CSS 然后打开我的网站时,chrome 仍在加载旧版本的 JS,CSS 。我知道客户端我们可以通过 Ctrl+Shift+R 强制刷新,但是每次都指示我的网站用户这样做太难了。

我已经尝试了这些,但仍然没有运气。所以请建议一种方法来强制浏览器每次都从我的服务器重新加载 JS 而不是缓存。

<meta http-equiv="cache-control" content="no-cache"> <!-- tells browser not to cache -->
<meta http-equiv="expires" content="0"> <!-- says that the cache expires 'now' -->
<meta http-equiv="pragma" content="no-cache"> <!-- says not to use cached stuff, if there is any -->

【问题讨论】:

  • "问题是每当我更新任何 JS 或 CSS 然后打开我的网站时,chrome 仍在加载旧版本的 JS、CSS" 你的意思是当 JavaScript 和CSS 在服务器上更新?
  • 只需配置您的服务器以发送正确的缓存控制标头。你用的是什么服务器?
  • 我正在使用托管在 Azure 云中的 PHP 网站。
  • @guest271314 是的,当我在我的服务器网站代码中更新 JS、CSS 时
  • @RangarajanK 您是否尝试过链接问题中的方法?

标签: javascript php google-chrome caching


【解决方案1】:

试试这个

<?php

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

【讨论】:

  • 试过了..还是不行
【解决方案2】:

添加一个这样的版本id,example.com/js/example.js?$versionid,如果你这样做是为了调试,你可以在开发者工具中禁用chrome缓存

【讨论】:

  • 你能再解释一下吗?我的 JS 文件没有任何版本。那我应该给什么版本号
  • 我知道这是一个旧答案,但我会为任何阅读的人详细说明。通过放置一个带有任意随机值(不一定是版本号)的查询字符串,浏览器会将您正在加载的文件视为一个新文件。这就是它起作用的原因。
猜你喜欢
  • 2015-04-21
  • 1970-01-01
  • 2021-04-12
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
相关资源
最近更新 更多