Пути Laravel Elixir

Я использую Elixir для компиляции моих файлов less

elixir(function(mix) {
mix.less([
    "../../../vendor/uikit/uikit/src/less/uikit.less",
    "main.less"
], 'public/css/style.css').version("public/css/style.css");
});

затем я пытаюсь использовать файл css, например

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

но в результате я получаю http://localhost:8080/build/css/style-a3ade8736f.css 404 (Not Found)

Я использую XAMMP, поэтому мой URL выглядит как http://localhost:8080/ad/public/

Когда я пытаюсь добавить слово 'piblic/' в css href, например
<link rel="stylesheet" type="text/css" href="public/{{ elixir('css/style.css') }}">
, я получаю сообщение об ошибке: like
http://localhost:8080/ad/public/public//build/css/style-a3ade8736f.css 404 (Not Found)

Как исправить ссылку?


person Heidel    schedule 13.01.2016    source источник


Ответы (4)


Вы можете вызвать функцию Elixir внутри asset() или url().

Как это:

{{ asset(elixir('css/style.css')) }}

Or

{{ url(elixir('css/style.css')) }}

Этот поток решает проблему.

person Jeroen Bellemans    schedule 01.04.2016

Вызов функции elixir внутри asset() или URL::Asset()

gulpfile.js

elixir(function(mix) {
    mix.less('app.less').version('css/app.css');
});

Лезвие

<link rel="stylesheet" href="{{ asset( elixir('css/app.css') ) }}" charset="utf-8">
person vickyprastiv    schedule 25.03.2016

Функция elixir ожидает, что вы установите версию файла, выполнив version() в вашем Gulpfile.

elixir(function(mix) {
    mix.version("css/all.css");
});
person ceejayoz    schedule 13.01.2016
comment
Ага, и он у меня в /public/build/css/style-23b9bf0277.css я просто не понимаю, как получить правильный путь. - person Heidel; 13.01.2016
comment
@Heidel Убедитесь, что public/build/rev-manifest.json доступен для записи и обновляется. Вот где функция elixir() PHP получает хэш для использования. - person ceejayoz; 13.01.2016
comment
Да, он доступен для записи и тоже обновляется) проблема в пути. - person Heidel; 13.01.2016

У меня была такая же проблема, и я рвал на себе волосы. Похоже, проблема заключается в немного вводящей в заблуждение документации о том, как вызывается URL-адрес. В мануале указано, что простой

<link rel="stylesheet" href="{{ elixir('output/all.css') }}">

должно быть все, что вам нужно, и он должен автоматически вызывать правильный скрипт. К сожалению, в зависимости от сервера, возможно, строка выше будет вызывать неправильный URL-адрес, как это было в моем случае:

<script src="/build/output/all-45ca09b2ad.css"></script>

Когда нам нужно

<script src="http://localhost/yourAlias/build/output/all-45ca09b2ad.css"></script>

Я смог решить эту проблему, обернув вызов в блок стиля HTML, например

{!! HTML::style(elixir('output/final.css')) !!}

ХТН

person Watercayman    schedule 30.01.2016
comment
Когда я пытаюсь это сделать, он выдает ошибку, говоря, что класс HTML не найден. Любые идеи? - person Colin Stadig; 27.05.2016
comment
@Colin Stadig, да, вспомогательная структура HTML, к сожалению, была исключена из одной из версий Laravel (5.1?). Вы можете либо вызвать это через стандартную ‹ссылку› и поместить бит эликсира в {{}} внутри лезвия, либо использовать Коллективная зависимость (которая, кстати, выдающаяся и делает формы, а также HTML-материал), включив: laravelcollective/html: ^5.2, в ваш блок 'require' вашего композитора. - person Watercayman; 27.05.2016