如何防止缓存我的Javascript文件?

2022-08-30 03:04:46

我有一个简单的html:

<html>
<body>
<head>
<meta charset="utf-8">
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
<script src="test.js"></script>
</body>
</html>

在测试中.js我更改了一个Javascript函数,但我的浏览器正在缓存此文件。如何禁用脚本 src 的缓存?


答案 1

将随机查询字符串添加到src

您可以通过在每次进行更改时递增查询字符串来手动执行此操作:

<script src="test.js?version=1"></script>

或者,如果您使用的是服务器端语言,则可以自动生成以下内容:

ASP.NET:

<script src="test.js?rndstr=<%= getRandomStr() %>"></script>

有关缓存破坏的更多信息,请参阅此处:

https://www.curtiscode.dev/post/front-end-dev/what-is-cache-busting


答案 2
<script src="test.js?random=<?php echo uniqid(); ?>"></script>

编辑:或者您可以使用文件修改时间,以便将其缓存在客户端上。

<script src="test.js?random=<?php echo filemtime('test.js'); ?>"></script>