{{asset('css / app.css')}}与laravel中的{{mix('css / app.css')}}相同

时间:2018-09-02 14:59:23

标签: php laravel

我是Laravel的新手,只想问一下{{asset('css/app.css')}}与Laravel中的{{mix('css/app.css')}}是否相同。

我也做了一些研究,我读过的文章说它们是相同的,但无论如何还是决定向你们询问。

3 个答案:

答案 0 :(得分:3)

测试这些非常容易,artisan tinker是一个交互式控制台。

mix()后缀一个版本ID,仅在您具有混合清单(用于对前端资产进行版本控制)时才有效。 asset()为您的应用程序网址添加前缀。

两者都应用于显示版本化资产的绝对URL:

修补程序输出:

>>> (string) mix('js/app.js')
=> "/js/app.js?id=68390ee698d5dd6a7283"
>>> (string) asset('js/app.js')
=> "http://site.test/js/app.js"
>>> (string) asset(mix('js/app.js'))
=> "http://site.test/js/app.js?id=68390ee698d5dd6a7283

答案 1 :(得分:1)

不,他们不一样。

使用命令asset()基本上是使用您的域从应用程序的公共目录中指向服务器上的真实文件。如果您的网站名为myawesomesite.com,则使用{{asset('css/app.css')}}将生成以下网址:http://myawesomesite.com/css/app.css

使用mix()命令从webpack(或gulp)中查找版本化/编译后的输出,并正确生成正确的url。

在此处了解有关编译资产(css / js)的更多信息:https://laravel.com/docs/5.6/mix#versioning-and-cache-busting

答案 2 :(得分:1)

Asset是一个帮助程序,用于获取您用作参数的文件的路径,但同时还包括版本号,以防止资产缓存。

asset() 资产功能使用当前请求方案(HTTP或HTTPS)为资产生成URL:

  

{{asset('css / app.css')}}

混合
Laravel Mix的可爱创造者加入了常见的Webpack配置,并且您可以根据需要添加更多自定义配置。

对于想使用webpack的人来说,这特别棒,但是感觉配置webpack太困难了。也许他们想使用ES2016,但看到了一些关于加载器和模块的复杂文章。

Laravel Mix允许您使用一行描述您想要的内容,并将使用其预配置的设置来正确处理它。

您可以访问此链接:-#method-asset
点击此处了解有关混合的更多信息:-#mix