如何不告诉浏览器不要保存缓存

时间:2016-10-07 22:01:56

标签: javascript html browser-cache cache-control

我有一个laravel 5.2 app。每当我更新我的网站时,我的问题就出现了,我的所有客户都打电话给我,因为有些东西不起作用,问题是因为一些.js和.css在缓存中,我必须解释它们如何擦除缓存

什么是最好的解决方案?,标签如何告诉浏览器不缓存我的.js或.css(或其中一些,指定)?。

谢谢

3 个答案:

答案 0 :(得分:2)

您可以通过在代码中添加版本来为HTML和CSS添加版本,例如<link rel="stylesheet" href="style.css?v=3.4.1">

当您对CSS或JS进行更改时,请更改版本,访问该页面的任何人都将加载新版本,而不是依赖于浏览器缓存。

如果您在Laravel中使用elixir,则包含用于版本控制和缓存清除的选项https://laravel.com/docs/5.3/elixir#versioning-and-cache-busting

答案 1 :(得分:1)

使浏览器无法保存缓存的方法是每次任何用户访问网页时为源创建新版本。

  

可以更新cache-buster查询字符串   浏览器无法识别其缓存中的文件并下载新文件   版本

我在cache boosting link找到了一个很棒的信息。

如果你使用的是apache link也可能非常有帮助。

答案 2 :(得分:1)

在laravel中,有一个样式表和脚本的版本。使用laravel-elixir可以找到here

如果只有版本的css样式表,那么你可以使用:

elixir(function(mix) {
    mix.version('css/all.css');
});

你会得到类似all-16d570a7.css

的内容

如果你想要多个文件,比如css和js:

elixir(function(mix) {
    mix.version(['css/all.css', 'js/app.js']);
});

最后要运行此版本,您只需在控制台中输入以下命令: gulp或更具体gulp version

希望这可以提供帮助。