Server Plugin
Pebble
필수 종속성: io.ktor:ktor-server-pebble
코드 예시: pebble
네이티브 서버 지원: ✖️ Ktor supports Kotlin/Native and allows you to run a server without an additional runtime or virtual machine.
Ktor는 Pebble 플러그인을 설치하여 애플리케이션 내에서 Pebble 템플릿을 뷰로 사용할 수 있도록 합니다.
종속성 추가
Pebble
을(를) 사용하려면 빌드 스크립트에 ktor-server-pebble
아티팩트를 포함해야 합니다:
Kotlin
Groovy
XML
Pebble 설치
애플리케이션에 Pebble
플러그인을 설치하려면, 지정된
모듈
의 Modules allow you to structure your application by grouping routes.
install
함수에 전달합니다. 아래 코드 스니펫은 Pebble
을(를) 설치하는 방법을 보여줍니다... - ...
embeddedServer
함수 호출 내에서. - ...
Application
클래스의 확장 함수인 명시적으로 정의된module
내에서.
kotlin
kotlin
install
블록 내에서 Pebble 템플릿 로드를 위해 PebbleEngine.Builder를 구성할 수 있습니다.
Pebble 구성
템플릿 로드 구성
템플릿을 로드하려면 PebbleEngine.Builder를 사용하여 템플릿을 로드하는 방법을 구성해야 합니다. 예를 들어, 아래 코드 스니펫은 Ktor가 현재 클래스패스를 기준으로 templates
패키지에서 템플릿을 찾아보도록 활성화합니다:
kotlin
import io.ktor.server.application.*
import io.ktor.server.pebble.*
import io.ktor.server.response.*
fun Application.module() {
install(Pebble) {
loader(ClasspathLoader().apply {
prefix = "templates"
})
}
}
응답으로 템플릿 전송
resources/templates
에 index.html
템플릿이 있다고 가정해 봅시다:
html
<html>
<body>
<h1>Hello, {{user.name}}</h1>
</body>
</html>
사용자 데이터 모델은 다음과 같습니다:
kotlin
data class User(val id: Int, val name: String)
지정된 라우트에 템플릿을 사용하려면 다음과 같이 PebbleContent
를 call.respond
메서드에 전달합니다:
kotlin
get("/index") {
val sampleUser = User(1, "John")
call.respond(PebbleContent("index.html", mapOf("user" to sampleUser)))
}