Laravel 5 не находит файлы css

Я только что установил проект Laravel 5 на MAMP, и мои страницы не находят файлы css.

Это ссылка на мой css в моем файле app.blade.php:

<link href="/css/app.css" rel="stylesheet">

И в моем файле .htaccess есть такая строка:

RewriteBase /laravel-site/laravel-5-app/public/

В папке config мой файл app.php содержит следующее:

'url' => 'http://localhost:8888/laravel-site/laravel-5-app/public/',

Но когда я открываю эту страницу: http://localhost:8888/laravel-site/laravel-5-app/public/auth/login и проверьте инструменты разработчика, он ищет файл css в этом месте: http://localhost:8888/css/app.css

В качестве примечания, если я перейду к этому URL: http://localhost:8888/laravel-site/laravel-5-app/public/ Я получаю правильную страницу приветствия.


person davelowe85    schedule 29.01.2015    source источник
comment
Что касается ссылки, возможно, попробуйте <link href="{{ public_path() }}/css/app.css" rel="stylesheet">.   -  person giannis christofakis    schedule 29.01.2015
comment
Теперь он ищет файл css здесь: /Applications/MAMP/htdocs/laravel-site/laravel-5-app/public/css/app.css (который я там, где он находится), но он все еще не показывает его на странице , но если я скопирую эту ссылку в адресную строку, он найдет файл css.   -  person davelowe85    schedule 29.01.2015
comment
измените ссылку css / app.css app.blade.php следующим образом. <link href="{{ asset('css/app.css') }}" rel="stylesheet">   -  person jhnlsn    schedule 04.02.2015


Ответы (18)


Используйте это, чтобы добавить такие ресурсы, как css, javascript, images .. в файл лезвия.

ДЛЯ CSS,

<link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css" >

OR

<link href="{{ URL::asset('css/app.css') }}" rel="stylesheet" type="text/css" >

ДЛЯ JS,

<script type="text/javascript" src="{{ asset('js/custom.js') }}"></script>

OR

 <script type="text/javascript" src="{{ URL::asset('js/custom.js') }}"></script>

ДЛЯ ИЗОБРАЖЕНИЙ

{{ asset('img/photo.jpg'); }}

Вот DOC

В качестве альтернативы, если вы вытащили пакет composer illuminate/html, который был установлен по умолчанию в laravel 4.2, вы можете использовать, как показано ниже. В laravel 5. вам нужно вручную вытащить пакет.

{{ HTML::style('css/style.css') }}

Вот пример.

person Kalhan.Toress    schedule 29.01.2015
comment
@ davelowe85 Потому что вы должны использовать php artisan serve или Homestead для разработки и правильную конфигурацию сервера в продакшене. public не должен никогда быть в ваших URL-адресах (если это так, ваше приложение потенциально уязвимо для взлома), а Laravel обычно запускается в корне доменного имени, поэтому /css/app.css - идеальный вариант по умолчанию для разумных настроек. . - person ceejayoz; 29.01.2015
comment
Это способ сделать это, но вам действительно стоит изучить возможность использования эликсира. - person Christophvh; 20.05.2016
comment
Слово лезвие необходимо выделить более подробно. - person Infamous; 22.05.2016
comment
эти вещи не работают на моем производственном сервере (общий хостинг)! есть идеи почему? - person sameer manek; 17.07.2016
comment
и каково решение для Laravel mix ()? Поскольку url () у меня работает правильно, но mix не находит папку / public ... - person Jquestions; 24.12.2018

В корневом пути создайте файл .htaccess с

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} !^/public/ 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f



RewriteRule ^(.*)$ /public/$1 
#RewriteRule ^ index.php [L]
RewriteRule ^(/)?$ public/index.php [L] 
</IfModule>

В общедоступном каталоге создайте файл .htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Если вы внесли какие-либо изменения в файл public / index.php, исправьте их, указав правильный путь, тогда ваш сайт будет активен.

что с этим решит?

  • Проблема с хостингом проекта laravel.
  • Css не работает на laravel.
  • Сайт Laravel не работает.
  • загрузка сайта laravel с доменом / public / index.php
  • проект laravel не перенаправляет правильно
person Community    schedule 13.10.2018

Вы можете использовать один из следующих вариантов:

<link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css" >

<link href="{{ URL::asset('css/app.css') }}" rel="stylesheet" type="text/css" >

{!! Html::style( asset('css/app.css')) !!}
person Pervez    schedule 05.11.2015

Stop artisan serve

и попробуйте использовать

php -S localhost:8000 -t public
person David J    schedule 03.04.2018
comment
Это решает проблему с каталогами и разрешениями Windows, а также отлично работает в Linux. Спасибо - person The Bumpaster; 01.08.2018

Это работает. Для css:

<link href="css/app.css" rel="stylesheet">

Пытаться:

 <link href="public/css/app.css" rel="stylesheet">
person ThuanLe    schedule 05.02.2015

Вот решение

  {!! Html::style('css/select2.min.css') !!}
  {!! Html::script('js/select2.min.js') !!}
person Mansoor Ahmad Khan    schedule 21.05.2017

Это работает для меня

Если вы перенесли файл .htaccess из общедоступного каталога в папку проекта и изменили server.php на index.php в папке проекта, то это должно сработать для вас.

<link rel="stylesheet" href="{{ asset('public/css/app.css') }}" type="text/css">

Спасибо

person Muddasir Abbas    schedule 05.06.2018

До сих пор у меня была такая же проблема.

Удаление / из предыдущего /css/app.css, чтобы его css.app.css работал у меня.

person Romelle    schedule 29.06.2018

Чтобы быстро применить простое регулярное выражение.

search : href="(.+?)"
replace : href="{{ asset('$1') }}"

а также

search : src="(.+?)"
replace : src="{{ asset('$1') }}"
person Uchiha Madara    schedule 15.05.2016
comment
Пожалуйста, добавьте пояснения к своему ответу, чтобы другие могли извлечь из него уроки - где это следует применять и почему? - person Nico Haase; 20.05.2020

Я использовал:

"{{asset('css/custom.css')}}"
"{{asset('css/app.css') }}"

Первый - мой собственный файл, второй - с laravel. Пользуюсь версией 5.

http://spanibox.com/css/app.css работает, но http://spanibox.com/css/custom.css не поддерживает. Я нахожу это очень странным.

person Screwtape007    schedule 16.05.2018

Если вы используете laravel 5 или 6:

  1. Внутри общей папки создайте папки .css, .js, images ...

введите описание изображения здесь

  1. Затем внутри вашего файла лезвия вы можете отображать изображения, используя этот код:

<link rel="stylesheet" href="/css/bootstrap.min.css">
<link src="/images/test.png">
<!-- / is important and dont write public folder-->

person AlamiFati    schedule 21.05.2020

мое мнение таково:

<link rel="stylesheet" href="{{ URL::to('/css/app.css') }}">

- лучший способ перейти к вашим файлам css.

URL::to() также работает с js

person kqcreations    schedule 12.11.2017

Laravel версии 6.0.2

У меня тоже была такая же проблема. я использовал

<link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css" >
<link href="{{ asset('css/bootstrap.css') }}" rel="stylesheet">

И после перемещения папки CSS из ресурса папки в общедоступную папку он работает

person Mladen Nikolic    schedule 13.09.2019

Это сработало для меня:
Если это файл css, нажмите

<link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css" >

Если это изображение, нажмите

<link href="{{ asset('css/img/logo.png') }}" rel="stylesheet" type="text/css" >
person selharem    schedule 17.07.2020
comment
Добавляя ответ к вопросу пятилетней давности с семнадцатью существующими ответами, важно включить объяснение и указать, к какому новому аспекту вопроса относится ваш ответ. - person Jason Aller; 17.07.2020

<link rel="stylesheet" href="/css/bootstrap.min.css"> если вы используете laravel 5 или 6, вам следует создать папку css и вызвать ее с помощью

меня устраивает

person AlamiFati    schedule 06.05.2020
comment
Пожалуйста, добавьте дополнительные пояснения к своему ответу, чтобы другие могли извлечь из него уроки. - person Nico Haase; 07.05.2020
comment
да, внутри вашей общедоступной папки создайте другие папки (CSS, JS, ...), и чтобы использовать его, мы должны добавить / перед ссылкой на наш файл, но без общедоступных это обязательно в laravel 5 или 6, я желаю этого добра - person AlamiFati; 20.05.2020
comment
Пожалуйста, добавьте все объяснения к ответу, отредактировав его - person Nico Haase; 20.05.2020

Вы можете просто создать общедоступные активы, добавить больше путей и вызвать в голове html следующий код

person Rafael Moura    schedule 26.11.2019

если вы используете ubuntu, вы можете попробовать эти команды:

sudo apt install npm

npm install && npm run dev
person saif    schedule 02.02.2020
comment
Пожалуйста, добавьте пояснение к своему ответу, чтобы другие могли извлечь из него уроки - почему это должно решить данную проблему? - person Nico Haase; 20.05.2020

Просто вы можете поставить обратную косую черту перед вашей ссылкой css

person Senthoo    schedule 17.03.2020
comment
Пожалуйста, добавьте пояснение к своему ответу, чтобы другие могли извлечь из него уроки. Обратная косая черта в URL-адресе звучит странно - person Nico Haase; 20.05.2020