在Laravel 5中,{{url}}和{{asset}}之间的区别是什么?

时间:2016-08-30 02:40:33

标签: php laravel laravel-5.2

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

例如,

<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')}}">

这两种形式都可以。

那么,差异是什么?

4 个答案:

答案 0 :(得分:25)

决定使用哪个URL helper

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

url()生成给定路径(code)

的绝对URL
  • 用于静态网址(应该很少见)。
  • 接受编码并添加到域末尾的参数数组。
  • 保留所有URL query string

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

asset()生成应用程序资产(code)

的URL
  • 用于直接提供的文件,如CSS,图片,javascript。
  • 只接受直接路径。

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

route()获取指定路由(code)

的URL
  • 用于每条路线(应指定每条路线以帮助适应未来路径的变化)。
  • 需要named routes
  • 接受路由参数的关联数组。
  • 允许覆盖相对路线与绝对路线(默认)。

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

答案 1 :(得分:10)

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

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

答案 2 :(得分:2)

asset()方法用于包含CSS / JavaScript /图像文件。

用于生成链接网址的

url()方法。

示例:资产

<script src="{{ asset('js/jquery.min.js') }}"></script>

示例:url

{{ url('image/welcome.png') }}

答案 3 :(得分:0)

URL::route获取指向路由的URL。所以在你的情况下,如果你这样命名你的路线:

Route::get('/account/register', [
    'name' => 'register', 
    'uses' => 'RegisterController@create'
]);

然后你就可以使用

<a href="{{ URL::route('register') }}" >Register 1</a> 在Blade模板中。