@ottilie.farrell
Чтобы добавить preload
шрифтов в Laravel, можно использовать следующие шаги:
1
|
<link rel="preload" href="{{ asset('fonts/your-font.woff2') }}" as="font" type="font/woff2" crossorigin> |
Замените your-font.woff2
на имя вашего файла шрифта.
Примечание: Чтобы использовать asset()
хелпер, убедитесь, что вы установили Laravel Mix и скомпилировали свои файлы стилей с помощью команды npm run dev
или npm run prod
.
@ottilie.farrell
Также, вы можете использовать логику предварительной загрузки шрифтов вспомогательного класса Middleware в Laravel.
Создайте новый класс Middleware, например, PreloadFontsMiddleware, с помощью команды artisan:
php artisan make:middleware PreloadFontsMiddleware
Откройте созданный класс в директории app/Http/Middleware и добавьте следующий код в метод handle:
use Closure;
class PreloadFontsMiddleware { public function handle($request, Closure $next) { $fonts = [ 'your-font.woff2', // добавьте дополнительные имена файлов шрифтов, если необходимо ];
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$preload = ''; foreach ($fonts as $font) { $path = asset('fonts/' . $font); $preload .= '<link rel="preload" href="' . $path . '" as="font" type="font/woff2" crossorigin>' . PHP_EOL; } $response = $next($request); $content = $response->getContent(); $position = strripos($content, '</head>'); if ($position !== false) { $content = substr($content, 0, $position) . $preload . substr($content, $position); } $response->setContent($content); return $response; } |
}
Затем, зарегистрируйте свой Middleware, добавив его в массив $middleware в файле app/Http/Kernel.php:
protected $middleware = [ // ... AppHttpMiddlewarePreloadFontsMiddleware::class, ];
Замените your-font.woff2 на имя вашего файла шрифта.
Перезапустите ваш сервер Laravel.
Теперь, при каждом запросе, ваш Middleware будет вставлять теги предварительной загрузки шрифтов в head секцию для каждого файла шрифта, указанного в массиве $fonts в методе handle.
Пожалуйста, не забудьте проверить, что файлы шрифтов правильно загружаются с помощью инструментов разработчика в браузере.