Функция asset
Функция asset генерирует абсолютный URL-адрес для ресурсов, хранящихся в публичной директории вашего Laravel-приложения. Она принимает строку с относительным путём к файлу внутри папки public и возвращает полный URL-адрес, который можно использовать в HTML-шаблонах. Это особенно удобно при работе с CSS-файлами, JavaScript-скриптами, изображениями и другими статическими файлами, так как функция автоматически учитывает базовый URL приложения, заданный в конфигурации.
Первый параметр функции - это строка с относительным путём к файлу от корня директории public. Второй параметр является необязательным - булево значение, указывающее, следует ли генерировать HTTPS-адрес. По умолчанию используется протокол текущего запроса.
Синтаксис
<?php
asset($path, $secure);
?>
Где $path - строковый путь к ресурсу, а $secure - необязательный булев параметр, указывающий использование HTTPS.
Пример
Давайте сгенерируем URL для CSS-файла в директории public/css/app.css в шаблоне Blade:
<html>
<head>
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
</head>
<body>
<div id="app">
@yield('content')
</div>
</body>
</html>
Результат выполнения кода для локального сервера с базовым URL http://localhost:8000:
http://localhost:8000/css/app.css
Пример
Теперь сгенерируем URL для изображения из папки public/images/logo.png:
<div class="header">
<img src="{{ asset('images/logo.png') }}" alt="Logo">
<h1>Welcome to our site</h1>
</div>
Результат выполнения кода:
http://localhost:8000/images/logo.png
Функция автоматически добавляет слеш между базовым URL и переданным путём, если это необходимо.
Пример
Использование функции asset с параметром безопасности для принудительного создания HTTPS-адреса:
<script src="{{ asset('js/app.js', true) }}"></script>
Результат выполнения кода:
https://localhost:8000/js/app.js
Пример
Функцию asset также можно использовать в PHP-коде, например, в контроллере при формировании данных для представления:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PageController extends Controller
{
public function index()
{
$data = [
'css_url' => asset('css/main.css'),
'js_url' => asset('js/main.js'),
'logo_url' => asset('images/logo.png')
];
return view('page', $data);
}
}
?>
Результат выполнения кода с массивом данных для представления:
[
"css_url" => "http://localhost:8000/css/main.css",
"js_url" => "http://localhost:8000/js/main.js",
"logo_url" => "http://localhost:8000/images/logo.png"
]
Смотрите также
-
функция
url,
которая генерирует URL-адреса для маршрутов -
функция
route,
которая генерирует URL-адреса для именованных маршрутов -
функция
mix,
которая генерирует URL-адреса для файлов, обработанных Laravel Mix -
директива
@vite,
которая подключает ресурсы через Vite