3

我想使用库kotlin-html来生成 html 而不是 kotlinx.html。这个库只生成一个 html 文本:

p("A paragraph").render()
// => <p>A paragraph</p>

但我找不到如何使用 Ktor 响应 html 而不是文本

fun Routing.root() {
    get("/") {
        call.respondText {"<p>A paragraph</p>"}
    }
}

此代码将生成一个带有文本<p>A paragraph</p>而不是 html-page 的页面。而且似乎call.respondHtml只适用于 kotlinx.html DSL。如何使用纯文本执行此操作?

4

2 回答 2

7

您可以将参数指定ContentType.Text.HtmlContentTyperespondText

call.respondText("<p>foo</p>", ContentType.Text.Html)

ContentType.Text.Plain如果不提供,则默认使用ContentType

于 2018-09-27T20:50:30.197 回答
0

Ktor 有一个特殊的模块用于处理kotlinx.html,所以你可以使用

call.respondHtml {
    head {
        title { +"Async World" }
    }
    body {
        h1(id = "title") {
            +"Title"
        }
    }
}

在此处查看详细信息:https ://ktor.io/servers/features/templates/html-dsl.html

于 2018-09-27T21:48:20.320 回答