要将Laravel Inertia部署到OpenLiteSpeed,您可以按照以下步骤操作:
在OpenLiteSpeed中创建一个新的虚拟主机,并将根目录设置为您的Laravel项目的公共目录。
在您的Laravel项目中,使用Composer安装Inertia和Inertia-Laravel插件:
composer require inertiajs/inertia laravel/server inertiajs/inertia-laravel
app/Providers/AppServiceProvider.php
文件中,注册Inertia服务提供者和中间件。在register
方法中添加以下代码:use Inertia\Inertia;
use Inertia\Middleware;
public function register()
{
Inertia::version(function () {
return md5_file(public_path('mix-manifest.json'));
});
Inertia::share([
'app.name' => config('app.name'),
'auth.user' => function () {
return Auth::user();
},
]);
$this->app->bind(Middleware::class, function ($app) {
return new Middleware($app[Inertia::class]);
});
}
在config/app.php
文件中,将App\Providers\RouteServiceProvider::class
替换为App\Providers\InertiaRouteServiceProvider::class
。
创建一个新的InertiaRouteServiceProvider
并继承RouteServiceProvider
,将以下代码添加到boot
方法中:
use Inertia\Inertia;
public function boot()
{
parent::boot();
Inertia::share([
'errors' => function () {
return session()->get('errors') ? session()->get('errors')->getBag('default')->getMessages() : (object) [];
},
]);
}
Inertia::render
方法来呈现视图,如下所示:use Inertia\Inertia;
Route::get('/', function () {
return Inertia::render('Welcome');
});
resources/js/app.js
文件中,配置Inertia并创建Vue组件:import { createApp, h } from 'vue';
import { App, plugin } from '@inertiajs/inertia-vue3';
createApp({
render: () => h(App, {
initialPage: JSON.parse(document.getElementById('app').dataset.page),
resolveComponent: name => require(`./Pages/${name}`).default,
}),
}).use(plugin).mount('#app');
webpack.mix.js
文件中,为Inertia配置版本控制:mix.js('resources/js/app.js', 'public/js').version();
npm install
npm run dev
希望以上步骤能帮助您成功部署Laravel Inertia到OpenLiteSpeed。如果您遇到任何问题,请随时询问。