본문 바로가기
프로그래밍/Web

Laravel Inertia Server-side 설치

by 사악신 2024. 1. 10.

Inertia.js 서버 측 설정의 첫 단계는 서버 측 프레임워크를 구성하는 것입니다. Inertia는 Laravel을 위한 공식 서버 측 어댑터를 유지하고 있습니다. 다른 프레임워크를 사용하는 경우 해당 어댑터가 유지하는 프레임워크별 문서를 참조하십시오.

 

Laravel Stater kits

Laravel의 스타터 키트인 Breeze와 Jetstream은 Inertia 애플리케이션을 위한 즉시 사용 가능한 스캐폴딩을 제공합니다. 이러한 스타터 키트는 Laravel 및 Vue 또는 React를 사용하여 새로운 Inertia 프로젝트를 시작하는 가장 빠른 방법입니다. 그러나 Inertia를 수동으로 설치하려면 아래 내용을 참조하십시오.

 

Install dependencies

먼저 Composer 패키지 관리자를 사용하여 Inertia 서버 측 어댑터를 설치합니다.

 

composer require inertiajs/inertia-laravel

 

Root template

다음으로, 애플리케이션에 첫 페이지 방문 시 로드될 루트 템플릿을 설정합니다. 이는 사이트 애셋(CSS 및 JavaScript)을 로드하는 데 사용되며, JavaScript 애플리케이션을 부팅할 루트 <div>도 포함합니다.

 

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
    @vite('resources/js/app.js')
    @inertiaHead
  </head>
  <body>
    @inertia
  </body>
</html>

 

이 템플릿은 자산뿐만 아니라 @inertia 및 @inertiaHead 지시문도 포함해야 합니다. 기본적으로 Inertia의 Laravel 어댑터는 루트 템플릿이 app.blade.php라고 가정합니다. 다른 루트 뷰를 사용하려면 Inertia::setRootView() 메서드를 사용하여 변경할 수 있습니다.

 

Middleware

다음으로 Inertia 미들웨어를 설정해야 합니다. 다음 Artisan 명령을 사용하여 애플리케이션에 HandleInertiaRequests 미들웨어를 게시할 수 있습니다.

php artisan inertia:middleware

 

미들웨어가 게시되면 App\Http\Kernelweb 미들웨어 그룹의 마지막 항목으로 HandleInertiaRequests 미들웨어를 등록합니다.

 

'web' => [
    // ...
    \App\Http\Middleware\HandleInertiaRequests::class,
],

 

이 미들웨어는 애셋 버전을 설정하기 위한 version() 메서드와 공유 데이터를 정의하기 위한 share() 메서드를 제공합니다.

 

Creating responses

이제 서버 측에서 준비가 완료되었습니다! 이제 Inertia 페이지를 생성하고 응답을 통해 렌더링할 준비가 되었습니다.

use Inertia\Inertia;

class EventsController extends Controller
{
    public function show(Event $event)
    {
        return Inertia::render('Event/Show', [
            'event' => $event->only(
                'id',
                'title',
                'start_date',
                'description'
            ),
        ]);
    }
}

 

 

반응형

'프로그래밍 > Web' 카테고리의 다른 글

Laravel Inertia - Pages  (0) 2024.01.18
Laravel Inertia Client-side 설치  (0) 2024.01.10
Laravel Jetstream Livewire  (1) 2024.01.08
Laravel Jetstream Inertia  (0) 2024.01.08
Laravel Jetstream Browser Sessions  (0) 2024.01.08

댓글