我有一个laravel 5.2 app。每当我更新我的网站时,我的问题就出现了,我的所有客户都打电话给我,因为有些东西不起作用,问题是因为一些.js和.css在缓存中,我必须解释它们如何擦除缓存
什么是最好的解决方案?,标签如何告诉浏览器不缓存我的.js或.css(或其中一些,指定)?。
谢谢
答案 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
。
希望这可以提供帮助。