Hello everyone,
I just started learing Kotlin and Ktor for Web Development. I started creating a Template and everything worked perfectly but now I want to add style to my Templates. In the Kotlin Docs they add style with HTML but I would like to add style with a CSS-File or add a favicon to my head section. Is that possible?
NK
You can use FreeMarker templates for any kind of text content, just make sure that your server responds with an appropriate content type. Here is an example:
embeddedServer(Netty, port = 8080) {
install(FreeMarker) {
templateLoader = ClassTemplateLoader(this::class.java.classLoader, "templates")
}
routing {
get("/style.css") {
call.respond(
FreeMarkerContent(
"style.css",
mapOf("mainColor" to "#aabbcc"),
contentType = ContentType.Text.CSS
)
)
}
get("/") {
call.respond(FreeMarkerContent("index.html", mapOf<Unit, Unit>()))
}
}
}.start(wait = true)
templates/style.css
body {
background-color: ${mainColor}
}
templates/index.html
<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
</body>
</html>