如何将 public 路径更改为 Laravel Mix 中包含下划线的内容?
How can I change the public path to something containing an underscore in Laravel Mix?
在 Laravel 5.4 中引入了 Mix 来编译资产和维护资产管道。 Mix 默认将您的 public 目录命名为 public
。在很多情况下,包括我的,我的 public 目录被称为别的东西。就我而言,它是 public_html
.
如何更改编译资产的 public 目录?
我尝试将 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 的配置文件,但在这里看不到任何明显的东西。
请注意:这是 LaravelMix,npm 包,因此与 index.php
文件中的修改无关。
有一个未记录的(我相信)方法叫做 setPublicPath
。然后您可以从输出中省略 public 路径。 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');
在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');
在 Laravel 5.4 中引入了 Mix 来编译资产和维护资产管道。 Mix 默认将您的 public 目录命名为 public
。在很多情况下,包括我的,我的 public 目录被称为别的东西。就我而言,它是 public_html
.
如何更改编译资产的 public 目录?
我尝试将 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 的配置文件,但在这里看不到任何明显的东西。
请注意:这是 LaravelMix,npm 包,因此与 index.php
文件中的修改无关。
有一个未记录的(我相信)方法叫做 setPublicPath
。然后您可以从输出中省略 public 路径。 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');
在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');