web-dev-qa-db-ja.com

Laravel Mixでアンダースコアを含むものにパブリックパスを変更するにはどうすればよいですか?

Laravel= 5.4 Mixは、アセットをコンパイルしてアセットパイプラインを維持するために導入されました。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ファイルの修正とは関係ありません。

17
Mike

setPublicPathと呼ばれる文書化されていない(私は信じている)メソッドがあります。その後、出力からパブリックパスを省略できます。 setPublicPathはアンダースコアでうまく機能します。

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

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

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

Laravel 5.4では、このコードを使用できます:

in AppServiceProvider

public function register()
{

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

}
0
hamidteimouri