Как я могу изменить публичный путь на что-то, содержащее подчеркивание в Laravel Mix?

В Laravel 5.4 Mix была введена для компиляции активов и поддержки конвейера активов. Смешайте значения по умолчанию с именем вашего публичного каталога 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 файл.

10

Решение

Существует недокументированный (я считаю) метод, называемый setPublicPath, Затем вы можете опустить публичный путь из вывода. setPublicPath хорошо играет с подчеркиванием.

mix.setPublicPath('public_html/');
mix.js('resources/assets/js/app.js', 'assets/js')
.sass('resources/assets/sass/app.scss', 'assets/css');
16

Другие решения

В 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');
2

В Laravel 5.4 вы можете использовать этот код:

в AppServiceProvider :

public function register()
{

$this->app->bind('path.public', function () {
return base_path() . DIRECTORY_SEPARATOR .'public_html';
});

}
1
По вопросам рекламы [email protected]