Хорошо. Я знаю, что это действительно элементарная проблема, но я не могу понять. Это вопрос о Ларавеле.
В принципе, у меня есть таблицы стилей, встроенные в мой макет по умолчанию. В настоящее время я использую обычный css для их ссылки, например:
<link rel="stylesheet" href="css/app.css" />
Он отлично работает, когда я на одном уровне маршрута, например / о , но перестает работать, когда я иду глубже, например / about / me .
Если я посмотрю на консоль разработчика Chrome, я вижу некоторые из следующих ошибок (только для более глубоких маршрутов):
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://example.dev/about/css/app.css".
Таким образом, теперь он ищет css внутри папки «about», которая, конечно же, не является папкой.
Я просто хочу, чтобы он выглядел в одном месте для активов независимо от маршрута.
Для Laravel 4 и 5:
<link rel="stylesheet" href="{{ URL::asset('assets/css/bootstrap.min.css') }}">
URL :: asset будет ссылаться на ваш проект / общедоступную / папку, так что запустите свои скрипты там.
Примечание. Для этого вам нужно использовать шаблоны клинков. Все шаблоны Blade должны использовать расширение .blade.php.
Laravel 4
Лучший и правильный способ сделать это
Добавление CSS
HTML :: style будет ссылаться на ваш проект / публикацию / папку
{{ HTML::style('css/bootstrap.css') }}
Добавление JS
HTML :: script будет ссылаться на ваш проект / публикацию / папку
{{ HTML::script('js/script.js') }}
Я предполагаю, что вы используете Laravel 3, если да, добавьте ваши файлы CSS / JS в общую папку, например
public/css public/js
и назовите его с помощью шаблонов Blade
{{ HTML::style('css/style.css'); }} {{ HTML::script('js/jquery-1.8.2.min.js'); }}
Вы используете относительные пути для своих активов, переходите к абсолютному пути, и все будет работать (добавьте косую черту перед «css».
<link rel="stylesheet" href="/css/app.css" />
в Laravel 5 ,
есть два способа загрузки js-файла в ваш вид
сначала используется html-помощник, во-вторых, используется помощник по активам.
для использования html-помощника вы должны сначала установить этот пакет через командную строку:
composer require illuminate/html
то вам нужно его обновить, поэтому перейдите в config / app.php и добавьте эту строку в массив поставщиков
'Illuminate\Html\HtmlServiceProvider'
то вам нужно определить псевдонимы для вашего пакета html, поэтому перейдите в aliases array в config / app.php и добавьте это
'Html' => 'Illuminate\Html\HtmlFacade'
теперь ваш html-помощник установлен так, что в ваших файлах просмотра лезвия вы можете написать это:
{!! Html::script('js/test.js') !!}
это будет искать ваш файл test.js в файле project_root / public / js / test.js.
////////////////////////////////////////////////// ////////////
для использования помощников ресурсов вместо html-помощника, вы должны написать sth, как это, в ваших файлах просмотра:
<script src="{{ URL::asset('test.js') }}"></script>
это будет искать файл test.js в project_root / resources / assets / test.js
Я предлагаю вам поместить его на фильтр маршрута раньше в {project} /application/routes.php
Route::filter('before', function() { // Do stuff before every request to your application... Asset::add('jquery', 'js/jquery-2.0.0.min.js'); Asset::add('style', 'template/style.css'); Asset::add('style2', 'css/style.css'); });
и использование механизма шаблонов лезвий
{{ Asset::styles() }} {{ Asset::scripts(); }}
или более на laravel управление документами активов
в laravel 4
вам просто нужно вставить {{ URL::asset('/') }}
следующим образом:
<link rel="stylesheet" href="{{ URL::asset('/') }}css/app.css" />.
То же самое для:
<script language="JavaScript" src="{{ URL::asset('/') }}js/jquery.js"></script> <img src="{{ URL::asset('/') }}img/image.gif">
Лучший способ, по-моему, добавить тег BASE в ваш HTML-код
<base href="/" target="_top">
Поэтому нет необходимости использовать такие вещи, как
{{ HTML::script('js/jquery/jquery-1.11.1.min.js'); }}
просто введите
<script src="js/jquery/jquery-1.11.1.min.js"></script>
на ваш взгляд, и это сработает.
Этот mehod будет обрабатывать URL-адреса RESTful и статические ресурсы как изображения, css, скрипты.
У Винса почти все было правильно, вы должны добавить
<base href="{{URL::asset('/')}}" target="_top">
и скрипты должны идти своим обычным путем
<script src="js/jquery/jquery-1.11.1.min.js"></script>
причина этого заключается в том, что изображения и другие вещи с относительным путем, например, с источником изображения или ajax-запросами, будут работать некорректно без привязки базового пути.
Laravel 5.4 с помощником смешивания:
<link href="{{ mix('/css/app.css') }}" rel="stylesheet"> <script src="{{ mix('/js/app.js') }}"> </script>
Если вы делаете жесткий код, вы, вероятно, должны использовать полный путь ( href="http://example.com/public/css/app.css"
). Однако это означает, что вам придется вручную настроить URL-адреса для разработки и производства.
Альтернативой приведенным выше решениям было бы использовать <link rel="stylesheet" href="URL::to_asset('css/app.css')" />
в Laravel 3 или <link rel="stylesheet" href="URL::asset('css/app.css')" />
в Laravel 4. Это позволит вам писать свой HTML так, как вы этого хотите, но также позволяйте Laravel создавать правильный путь для вас в любой среде.
Лучший способ использовать как,
<link rel="stylesheet" href="{{asset('assets/libraries/css/app.css')}}">
Предположим, вы не переименовали свою общую папку. Файлы css и js находятся в подкаталогах css и js в общей папке. Теперь ваш заголовок будет:
<link rel="stylesheet" type="text/css" href="/public/css/icon.css"/> <script type="text/javascript" src="/public/js/jquery.easyui.min.js"></script>
Просто добавьте еще один вопрос:
Если вы хотите удалить /public
свой проект с помощью .htaccess
,
то вы можете использовать это, [Добавить public
до /css
внутри asset()
]
<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
[Иногда это полезно.]