Как я могу изменить общедоступный путь к чему-то, содержащему знак подчеркивания в Laravel Mix?
В Laravel 5.4 была введена смесь для компиляции активов и поддержания конвейера активов. Смешайте значения по умолчанию с общим каталогом public
. Во многих случаях, включая мой, мой общий каталог называется чем-то другим. В моем случае это public_html
.
Как изменить общий каталог, в котором скомпилированы активы?
Я попытался изменить пути в webpack.min.js
на:
mix.js('resources/assets/js/app.js', 'public_html/assets/js')
.sass('resources/assets/sass/app.scss', 'public_html/assets/css');
К сожалению, это скомпилировано:
- public
|- _html
|-- assets
|--- css
|--- js
|- fonts
В Laravel 5.3 и Elixir это было так просто, как:
elixir.config.publicPath = 'public_html/assets';
Я проверил файл конфигурации Mix, но не вижу ничего очевидного здесь.
Обратите внимание: это Laravel Mix, пакет npm, поэтому он не имеет ничего общего с изменениями в файле index.php
.
Ответы
Ответ 1
Существует недокументированный (я считаю) метод, называемый setPublicPath
. Затем вы можете опустить общедоступный путь с выхода. setPublicPath
отлично играет с подчеркиваниями.
mix.setPublicPath('public_html/');
mix.js('resources/assets/js/app.js', 'assets/js')
.sass('resources/assets/sass/app.scss', 'assets/css');
Ответ 2
В Laravel 5.5 я решил так:
mix.setPublicPath('public_html/')
.js('resources/assets/js/app.js', 'front/js')
.js('resources/assets/js/custom.js', 'front/js')
.sass('resources/assets/sass/app.scss', 'front/css')
.styles('resources/assets/css/custom.css', 'public_html/front/css/custom.css');
Ответ 3
В Laravel 5.4 вы можете нам этот код:
в AppServiceProvider:
public function register()
{
$this->app->bind('path.public', function () {
return base_path() . DIRECTORY_SEPARATOR .'public_html';
});
}
Ответ 4
В Ларавеле 5,8
mix.config.publicPath='public_html';
mix.js('resources/assets/js/app.js', 'public_html/js')
.sass('resources/assets/sass/app.scss', 'public_html'/css');