Я очень новичок в Ларавеле. Я работаю над приложением Laravel 5.4, и у меня есть следующая проблема с использованием blade-сервера для получения URL-адреса добавления ресурса CSS.
Это мой файл app.blade.php, представляющий шаблон всех моих просмотров:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <!--<link href="/css/app.css" rel="stylesheet">--> <!--<link href="{{ URL::asset('css/app.css') }}" rel="stylesheet" type="text/css" >--> <link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css" > <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <script src="/js/app.js"></script> </head> <body> <div class="container" style="width: 60%; margin-bottom: 50px;"> @yield('content') </div> @yield('footer') </body> </html>
Как вы можете видеть, следуя этой SO-почте: Laravel 5 не находит файлы css
Я определяю этот ресурс CSS таким образом:
<link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css" >
для получения ресурса http: //localhost/HotelRegistration/public/css/app.css из правильного места.
Проблема заключается в том, что таким образом открывается URL-адрес, например http: // localhost / HotelRegistration / public / registration
Я все еще получаю неверную ссылку CSS на сгенерированной странице, это:
<link href="/css/app.css" rel="stylesheet">
Таким образом, я ожидал получить правильный http: //localhost/HotelRegistration/public/css/app.css
Я также попытался импортировать его, используя эту альтернативную ссылку:
<link href="{{ URL::asset('css/app.css') }}" rel="stylesheet" type="text/css" >
но я получаю те же результаты.
Что не так? Что мне не хватает? Как я могу исправить эту проблему и получить правильный URL-адрес моего CSS, включая весь путь?
Я просто подтолкнул stackoverflow, поэтому я не так много репутации, чтобы комментировать, поэтому я размещаю ответ здесь:
ели это хорошая идея использовать ремесленную подачу:
php artisan serve
это уменьшает большую головную боль. Если вы на Mac, попробуйте valet
. это действительно приятно и легко.
второй вам нужно импортировать css следующим образом:
<link href="{!! asset('css/app.css') !!}" rel="stylesheet" type="text/css" >
Надеюсь, это решит вашу проблему.
Используйте виртуальный хост в конфигурационных файлах apache, ваш корень – это публичный каталог, а не ваш корень localhost (замените YOUR_LOCALHOST_ROOT_PATH, конечно):
<VirtualHost *:80> ServerAdmin test@test.com DocumentRoot YOUR_LOCALHOST_ROOT_PATH/HotelRegistration/public ServerName hotel.dev <Directory "YOUR_LOCALHOST_ROOT_PATH/HotelRegistration/public"> AllowOverride All Require all granted </Directory>
Конечно, hotel.dev не существует в Интернете, без проблем, используйте файл системного хоста! В вашем файле хоста (в Windows: C: / Windows / System32 / drivers / etc / host, linux / etc / host) добавьте эту строку:
127.0.0.1 hotel.dev
вы можете добавить еще строку:
127.0.0.1 hotel.dev another.dev youtestsite.dev
Перезагрузите браузер и apache, он должен работать немедленно
И используйте http://hotel.dev
После этого у вас не должно быть никаких проблем с дорогой!
Если вы работаете на своем локальном хосте, вы должны запустить командную строку из корневого проекта вашего каталога (например: HotelRegistration /):
php artisan serve
По умолчанию вы сможете получить доступ к своему проекту с URL: http://127.0.0.1:8000/, а ссылка css будет выглядеть как http://127.0.0.1:8000/css/app.css
Если вы хотите разместить на своем удаленном сервере, вы можете использовать .htaccess переписать режим перенаправления на index.php общедоступной директории .