我一直在开发系统,每次我更新公用文件夹上的任何内容时,每台计算机都必须始终清除其缓存以使其生效。
我只是直接在js和css文件的公共文件夹上编码。当我将其推送到我的git存储库并通过ssh将其拉到我们的共享主机后,我也通过ssh将其复制到public_html文件夹中,所有客户端计算机仍需要手动清除其缓存,以使新的公共文件生效。我一直在研究laravel混合,但是我仍然不确定如何在实时托管中实际使用它。
目前尚不确定缓存清除是否是正确的术语,但是我希望我的客户端计算机每次更新系统时都使用最新的资产。
答案 0 :(得分:1)
另一种快速而肮脏的缓存清除方法是将文件的最后修改时间戳记用作版本字符串。这样,如果您更新文件,时间戳也会更改。 PHP为此具有filemtime方法。
我一直在Wordpress中使用它,但是在Laravel刀片模板中,它看起来像这样:
<script src="{{ asset('js/scripts.js') }}?ver={{ filemtime(public_path('js/scripts.js')) }}"></script>
我建议您使用built-in Laravel way,因为它还具有许多其他优点。但是此技巧的原理在许多其他情况下也可能有用。
答案 1 :(得分:0)
Laravel有一个内置系统,用于编译CSS和JavaScript之类的资产,includes a versioning system可确保当您推送新版本时,用户会收到这些更新的资产。
mix.js('resources/js/app.js', 'public/js')
.version();
答案 2 :(得分:0)
您可以在CSS和js文件中包含一个版本。
<link rel="stylesheet" href="{{asset('css/style.css?v=3.0')}}"> //specific versioning
<link rel="stylesheet" href="{{asset('css/style.css?v='.rand(1,99))}}"> //random .. every it treats as a new file