问题
I find sometimes both is OK? So what's the really difference?
For example,
<link rel="stylesheet" href="{{asset('resources/views/admin/style/css-ui.admin.css')}}">
and
<link rel="stylesheet" href="{{url('resources/views/admin/style/font/css/font-awesome.min.css')}}">
these two form is both OK.
So, what's the differences?
回答1:
Deciding which URL helper to use
Consider the type of URL that is needed / how the URL is being used. One of the advantages of having separate helper methods for each type of URL is they can have different handling logic. For example, assets (e.g. CSS, images, etc.) could involve a check that the file exists in the file system but do not require the type of analysis that a route would because the route may have parameters.
url() Generates an absolute URL to the given path (code)
- Use for static URLs (which should be rare).
- Accepts array of parameters that are encoded and added to the end of the domain.
Preserves any URL query string.
{{ url('search') }} // http://www.example.com/search {{ url('search', ['qevo', 'laravel']) }} // http://www.example.com/search/qevo/laravel
asset() Generates a URL to an application asset (code)
- Use for files that are directly served such as CSS, images, javascript.
Only accepts a direct path.
{{ asset('css/app.css') }} // http://www.example.com/css/app.css
route() Gets the URL to a named route (code)
- Use for every route (every route should be named to help future-proof path changes).
- Requires named routes.
- Accepts associative array for route parameters.
Allows override for relative route vs. absolute route (default).
{{ route('user.profile', ['name'=>'qevo']) }} // http://www.example.com/user/qevo/profile {{ route('user.profile', ['name'=>'qevo'], false) }} // /user/qevo/profile
回答2:
{{url}} allows you to create a link to a URL on your site -- another benefit is the fact that you can set the second parameter to an array with query string parameters within.
{{asset} simply allows you to link to an asset within your public directory -- for example css/main.css.
回答3:
asset() asset function generates a url for an asset using the current scheme of request.
Ex : asset('images/img.png')
url() The url function generates a fully qualified URL to the given path.
Ex : url('admin/users')
回答4:
URL::route gets the URL to a named route. So in your case if you name your route like this:
Route::get('/account/register', [
'name' => 'register',
'uses' => 'RegisterController@create'
]);
then you will be able to use
<a href="{{ URL::route('register') }}" >Register 1</a>
in Blade templates.
来源:https://stackoverflow.com/questions/39217975/in-laravel-5-whats-the-difference-between-url-and-asset