Laravel5.7メモ:publicをpublic_htmlにリネームしたい
サーバー設定を変更できない!publicじゃなくてpublic_htmlをドキュメントルートにしたい!そんな時のTipsです。
webpack.mix.jsの出力先を変更する
これを忘れてると、npm run devとかでビルドしたアセットがpublicに出力されちゃいます。忘れないようにしましょう。
let mix = require('laravel-mix');
/*
|--------------------------------------------------------------------------
| Mix Asset Management
|--------------------------------------------------------------------------
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel application. By default, we are compiling the Sass
| file for the application as well as bundling up all the JS files.
|
*/
mix.setPublicPath('public_html/'); //これを追加
mix
.js(['resources/assets/js/app.js'], 'public_html/js/app.js') //ここのパスも書き換える
.sass('resources/assets/sass/app.scss', 'css');
if (mix.inProduction()) {
mix.version();
}
bootstrap/app.php にて public のパスを書き換える
これを忘れてると、public_path() の関数が常にデフォルトのpublicを返してきます。public_htmlで返して欲しいのに、なんでいっつもpublicなの!!ムキーってなります。このページを参考にしました。
<?php
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
/*
|--------------------------------------------------------------------------
| Bind Important Interfaces
|--------------------------------------------------------------------------
|
| Next, we need to bind some important interfaces into the container so
| we will be able to resolve them when needed. The kernels serve the
| incoming requests to this application from both the web and CLI.
|
*/
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Console\Kernel::class,
App\Console\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
App\Exceptions\Handler::class
);
//これを追加!
$app->bind('path.public', function () {
return base_path("public_html");
});
/*
|--------------------------------------------------------------------------
| Return The Application
|--------------------------------------------------------------------------
|
| This script returns the application instance. The instance is given to
| the calling script so we can separate the building of the instances
| from the actual running of the application and sending responses.
|
*/
return $app;
この記事が気に入ったらサポートをしてみませんか?