Laravel下使用mix组件的version处理静态资源缓存问题
# 使用方法
Laravel-Mix 提供了 version
方法自动在所有编译后的文件名后追加唯一的哈希值,从而实现更方便的缓存销毁:
mix.js('resources/js/app.js', 'public/js')
.version();
1
2
2
在生成版本化文件后,你不会知道确切的文件名。
因此,你需要在 views
中使用 Laravel 的全局 mix
函数载入相应的哈希资源。
mix 函数自动判断哈希文件的当前文件名:
<script src="{{ mix('/js/app.js') }}"></script>
1
通常在开发阶段不需要版本化文件,你可以仅在运行 npm run production
时执行版本化处理:
mix.js('resources/js/app.js', 'public/js');
if (mix.inProduction()) {
mix.version();
}
1
2
3
4
5
2
3
4
5
# 注意
views
中使用mix函数会在public
目录下生成mix-mainfest.json
文件
该文件记录了当前各个静态资源的版本信息,注意不要删除这个文件
{
"resources/js/app.js": "resources/js/app.js?id=5895cd0562601519c910b05f117f4ec2",
}
1
2
3
2
3
上次更新: 2022/08/29, 09:35:44