2017-02-05 10 views
7

W Laravel 5.4 Mix został wprowadzony w celu kompilacji zasobów i utrzymania potoku zasobów. Domyślne wartości to katalog publiczny o nazwie public. W wielu przypadkach, w tym w moim, mój katalog publiczny nazywa się czymś innym. W moim przypadku jest to public_html.Jak zmienić publiczną ścieżkę na coś zawierającego podkreślenie w Laravel Mix?

Jak mogę zmienić katalog publiczny, do którego są kompilowane zasoby?

Próbowałem zmiany ścieżki wewnątrz webpack.min.js do:

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

Niestety to kompiluje do:

- public 
|- _html 
|-- assets 
|--- css 
|--- js 
|- fonts 

W laravel 5.3 i Elixir to było tak proste, jak:

elixir.config.publicPath = 'public_html/assets'; 

Sprawdziłem plik konfiguracyjny Mix, ale nie widzę tutaj niczego oczywistego.

Uwaga: to Laravel Mix, pakiet npm, więc nie ma to nic wspólnego z poprawkami w pliku index.php.

Odpowiedz

12

Istnieje nieudokumentowana (jak sądzę) metoda o nazwie setPublicPath. Możesz następnie pominąć ścieżkę publiczną z wyjścia. setPublicPath gra ładnie z podkreśleniami.

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

W laravel 5.4 można nam ten kod:

w AppServiceProvider:

public function register() 
{ 

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

} 
+1

Jest nic wspólnego z Laravel Mix. Mix to pakiet NPM (javascript), jak podano w moim pytaniu. – Mike

0

W laravel 5,5 I został rozwiązany w ten sposób,

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'); 
+1

To jest to samo, co zaakceptowana odpowiedź. – Mike

Powiązane problemy