wake-up-neo.com

Wie kann ich den öffentlichen Pfad in etwas ändern, das einen Unterstrich in enthält? Laravel Mischen?

In Laravel 5.4 wurde Mix eingeführt, um Assets zu kompilieren und die Asset-Pipeline zu verwalten. Mix verwendet standardmäßig Ihr öffentliches Verzeichnis mit dem Namen public. In vielen Fällen, einschließlich meiner, wird mein öffentliches Verzeichnis als etwas anderes bezeichnet. In meinem Fall ist es public_html.

Wie kann ich das öffentliche Verzeichnis ändern, in das Assets kompiliert werden?

Ich habe versucht, die Pfade in webpack.min.js zu ändern:

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

Leider kompiliert dies zu:

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

In Laravel 5.3 und Elixir war dies so einfach wie:

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

Ich habe die Konfigurationsdatei von Mix überprüft, kann aber hier nichts Offensichtliches erkennen.

Bitte beachte: Dies ist Laravel Mix, das npm-Paket, es hat also nichts mit Änderungen in der index.php-Datei zu tun.

10
Mike

Es gibt eine undokumentierte (ich glaube) Methode namens setPublicPath. Sie können dann den öffentlichen Pfad in der Ausgabe auslassen. setPublicPath spielt gut mit Unterstrichen.

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

In Laravel 5.5 habe ich so gelöst,

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
musa hayta

In Laravel 5.4 können Sie diesen Code verwenden:

in AppServiceProvider :

public function register()
{

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

}
1
hamidteimouri

In Laravel 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');
0