asset()
使用当前请求的scheme(HTTP或HTTPS)为前端资源生成一个URL:
$url = asset('img/photo.jpg');
laravel自带了laravel-mix,用于对js、css、图片等静态资源进行打包。生成的文件的命名会是:app.asjduiik2l1323879dasfydua23.js
, 即js原文件名+hash+.js后缀
,因为中间的那个hash是随时会变化的,所以在页面引入js文件的时候,就不能写死文件的路径,而是使用mix('app.js')
,此时laravel会自动去匹配当前的app.js
对应哪个app+hash+.js
的文件(项目public目录下会有一个mix-manifest.json
, 这里面保存了两者的对应关系,每次打包静态资源的时候都会更新该文件)。
而有些时候我们并不希望静态资源的名称中被加上hash值(大部分情况是独自引入的非nodejs模块的第三方库),这个时候就可以直接使用asset方法,它就是直接简单粗暴地找你给它名称的文件咯。