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

How to not tell browser not to save cache

我有一个 laravel 5.2 应用程序。每次我更新我的网站时,我的问题都会出现,我的所有客户都打电话给我,因为某些东西不起作用,问题是因为一些 .js 和 .css 在缓存中,我必须向他们解释如何清除缓存。

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

谢谢

当您将 JS 和 CSS 包含在 HTML 中时,您可以通过向标签添加版本来对它们进行版本控制,例如 <link rel="stylesheet" href="style.css?v=3.4.1">

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

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

让浏览器不保存缓存的方法是每次用户访问网页时为源创建一个新版本。

The cache-buster query string can be updated so that the browser doesn’t recognise the file in it’s cache and downloads a new version.

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

如果您使用的是 Apache,link 可能也会很有帮助。

在 laravel 中有样式表和脚本的版本控制。使用laravel-elixir可以找到here.

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

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.

希望这对您有所帮助。