Javascript 更新服务器后如何清除缓存
我已经开发了一个应用程序,但当我将最新版本从应用程序推送到服务器时,CSS和JS文件不会更新。旧文件正在显示。更新文件后如何清除缓存 像jcubic一样编辑 现在我用这种方式来使用buster index.html:Javascript 更新服务器后如何清除缓存,javascript,html,jquery,css,caching,Javascript,Html,Jquery,Css,Caching,我已经开发了一个应用程序,但当我将最新版本从应用程序推送到服务器时,CSS和JS文件不会更新。旧文件正在显示。更新文件后如何清除缓存 像jcubic一样编辑 现在我用这种方式来使用buster index.html: <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible"
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AIS</title>
<script src="index.php"></script>
<link rel="stylesheet" href="<?= with_hash('style.css') ?>">
</head>
您可以使用所谓的缓存buster。向应用程序中JS和CSS的URL添加唯一ID。我个人使用文件内容的散列,你可以用PHP或任何其他服务器端脚本编写HTML文件,但是如果你只有一个HTML文件,PHP是最简单的 在PHP中,它可以如下所示:
...
我认为有超过8个html文件。我是否仍然应该使用cache buster?以及它在produktion.css文件中的外观。我应该在html文件中添加代码还是只添加代码?@KlausM。为什么拥有更多的HTML文件会改变一切?要禁用缓存,请使用cache buster,没有其他方法。除非您使用服务工作者,否则您可以使用自己的逻辑来缓存文件。好的,我已经理解了,但我必须在js、css文件或html文件的头中添加一个剪断的代码吗?@KlausM。解决方案很简单—您有一个指向资源的URL—在文件末尾添加一些内容以禁用缓存。在页脚和页眉中添加文件或动态添加文件的位置并不重要。您不需要使用散列,这只是一个示例,您可以使用另一种禁用不需要的缓存的方式来命名文件。PHP代码在html文件中不起作用。请将扩展名更改为php。
<php?
function with_hash($url) {
return $url . "?" . md5(file_get_contents($url));
}
?>
Refused to apply style from 'http://127.0.0.1:5500/%3C?=%20with_hash(%27style.css%27)%20?%3E' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.