在Laravel 5中,{{url}}和{{asset}}有什么区别?确定要使用的 URL 帮助程序

2022-08-30 18:16:12

我发现有时两者都可以吗?那么真正的区别是什么呢?

例如

<link rel="stylesheet" href="{{asset('resources/views/admin/style/css-ui.admin.css')}}">

<link rel="stylesheet" href="{{url('resources/views/admin/style/font/css/font-awesome.min.css')}}">

这两种形式都是可以的。

那么,有什么区别呢?


答案 1

确定要使用的 URL 帮助程序

考虑所需的URL类型/URL的使用方式。为每种类型的 URL 使用单独的帮助程序方法的优点之一是它们可以具有不同的处理逻辑。例如,资产(例如.CSS、图像等)可能涉及检查文件是否存在于文件系统中,但不需要路由所需的分析类型,因为路由可能具有参数。

网址()生成给定路径(代码)的绝对 URL

  • 用于静态 URL(应该很少见)。
  • 接受编码并添加到域末尾的参数数组。
  • 保留任何 URL 查询字符串

    {{ url('search') }}
    // http://www.example.com/search
    
    {{ url('search', ['qevo', 'laravel']) }}
    // http://www.example.com/search/qevo/laravel
    

资产()生成应用程序资产(代码)的 URL

  • 用于直接提供的文件,如CSS,图像,javascript。
  • 仅接受直接路径。

    {{ asset('css/app.css') }}
    // http://www.example.com/css/app.css
    

路由()获取命名路由的 URL(代码)

  • 用于每个路由(应命名每个路由以帮助将来更改路径)。
  • 需要命名路由
  • 接受路由参数的关联数组。
  • 允许覆盖相对路由与绝对路由(默认)。

    {{ route('user.profile', ['name'=>'qevo']) }}
    // http://www.example.com/user/qevo/profile
    
    {{ route('user.profile', ['name'=>'qevo'], false) }}
    // /user/qevo/profile
    

答案 2

{{url}}允许您在网站上创建指向URL的链接 - 另一个好处是您可以将第二个参数设置为包含查询字符串参数的数组。

{{asset}只是允许您链接到公共目录中的资产 - 例如.css/main.css


推荐