Я использую эликсир Ларавеллы и назначаю такую версию
mix.version([
'public/assets/css/all.css',
'public/assets/js/all.js'
]);
И я называю это в метатеге, как это
{{ elixir('assets/css/all.css') }}
Результат в метатеге
<link href="/build/assets/css/all-5ca511c0.css" rel="stylesheet" type="text/css">
Я хотел бы узнать, есть ли способ изменить путь, как
<link href="assets/css/all-5ca511c0.css" rel="stylesheet" type="text/css">
Вскоре я хочу убрать «build» из пути. Спасибо за продвижение
Вот как elixir()
вспомогательная функция выполнена, в vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
:
if ( ! function_exists('elixir'))
{
/**
* Get the path to a versioned Elixir file.
*
* @param string $file
* @return string
*/
function elixir($file)
{
static $manifest = null;
if (is_null($manifest))
{
$manifest = json_decode(file_get_contents(public_path().'/build/rev-manifest.json'), true);
}
if (isset($manifest[$file]))
{
return '/build/'.$manifest[$file];
}
throw new InvalidArgumentException("File {$file} not defined in asset manifest.");
}
}
Как видите, она определяет эту функцию только в том случае, если ее не существует.
Таким образом, один из способов сделать это — определить его с помощью собственного кода и убедиться, что автозагрузчик composer загружает его первым. Но, это может стать немного хитрым, поэтому я предлагаю другой подход:
Создайте свою собственную вспомогательную функцию (с другим именем)!
Просто назовите это как хотите, удалите два build
ссылки и использовать его. Кроме того, время от времени проверяйте исходную функцию, чтобы убедиться, что ваш код соответствует требованиям.
Начиная с Laravel 5.2, в Elixir есть возможность установить собственный путь, но он не задокументирован. Чтобы использовать общую папку без вложенной папки сборки, вы можете использовать:
elixir(function(mix) {
mix.version(['css/all.css', 'js/all.js'], 'public');
});
// For referencing the css
// null -> base directory (public)
<link rel="stylesheet" href="{{ elixir('css/all.css', null) }}">
Этот пост дает хорошее объяснение и обходной путь для версий Laravel до 5.2.