Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将公共路径更改为在Laravel Mix中包含下划线的内容?_Php_Laravel_Laravel Elixir_Laravel 5.4_Laravel Mix - Fatal编程技术网

Php 如何将公共路径更改为在Laravel Mix中包含下划线的内容?

Php 如何将公共路径更改为在Laravel Mix中包含下划线的内容?,php,laravel,laravel-elixir,laravel-5.4,laravel-mix,Php,Laravel,Laravel Elixir,Laravel 5.4,Laravel Mix,在Laravel 5.4中,引入了Mix来编译资产和维护资产管道。Mix默认将您的公用目录命名为public。在很多情况下,包括我的,我的公共目录被称为其他东西。在我的例子中,它是public\uhtml 如何更改资产编译到的公共目录 我已尝试将webpack.min.js中的路径更改为: mix.js('resources/assets/js/app.js', 'public_html/assets/js') .sass('resources/assets/sass/app.scss',

在Laravel 5.4中,引入了Mix来编译资产和维护资产管道。Mix默认将您的公用目录命名为
public
。在很多情况下,包括我的,我的公共目录被称为其他东西。在我的例子中,它是
public\uhtml

如何更改资产编译到的公共目录

我已尝试将
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
文件中的修改无关。

有一个未记录的(我相信)方法称为
setPublicPath
。然后可以从输出中省略公共路径
setPublicPath
可以很好地使用下划线

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

在Laravel 5.4中,您可以使用以下代码:

在AppServiceProvider中:

public function register()
{

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

}

在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');
在拉威尔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');

这与Laravel Mix无关。Mix是一个NPM包(javascript),如我在问题中所述。