Не может обслуживать содержимое c с Ktor - PullRequest
1 голос
/ 14 марта 2020

Я пытаюсь использовать функцию Route.stati c для обслуживания stati c файлов, но она не работает. Я перепробовал все виды комбинаций и папок в моем рабочем каталоге. Теперь у меня есть css в разделе resources / static / css и index. html в разделе resources / stati c. Если я напишу следующее, я ничего не получу:

@kotlin.jvm.JvmOverloads
fun Application.module(testing: Boolean = false) {

    val client = HttpClient(Apache) {}

    routing {
      static("root") {
        files("css")
        default("index.html")
      }
   }
}

Однако я могу из этого ответа: Ktor - Stati c маршрутизация контента , напишите:

        resource("/", "index.html")
        resource("*", "index.html")

Тогда я получу индекс. html в разделе resources / stati c. Я не могу получить что-то еще. Что я тут не так делаю?

Ссылка: https://ktor.io/servers/features/static-content.html#specifying -файлы и папки

1 Ответ

0 голосов
/ 27 апреля 2020

Предположим, что у вас есть проект в папке C: \ ktor-project. Если вы хотите, чтобы ваш сервер Ktor использовал следующие URL-адреса и возвращал содержимое соответствующих файлов ниже, используйте код внизу.

http://localhost: 8080 / root / main. css -> C: \ ktor-project \ css \ main. css http://localhost: 8080 / root -> C: \ ktor-project \ index . html http://localhost: 8080 / root / styles. css -> C: \ ktor-project \ resources \ stati c -resources \ styles. css

static("/root") {
    files("css")
    default("index.html")
    resources("static-resources")
}

Строка ресурсов ("stati c -resources") может быть лучшим выбором, чем строка файлов ("css"), если данные стили. css файл создается вашим Gradle строить. В большинстве случаев вам понадобится только один из них.

...