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

在Laravel 5.4中引入了Mix来编译资源和维护资源管道。混合默认为名为 的公共目录。在许多情况下,包括我的,我的公共目录被称为其他东西。在我的情况下,它是.publicpublic_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包,因此它与索引.php文件中的修改无关。


答案 1

有一个未记录的(我相信)方法叫做。然后,您可以从输出中省略公共路径。 与下划线很好地配合。setPublicPathsetPublicPath

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

答案 2

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

推荐