Расположение webroot (для css файла) в приложении Perfect - PullRequest
0 голосов
/ 16 ноября 2018

Я клонировал проект PerfectTemplate и использую его для показа html следующим образом…

import PerfectHTTP
import PerfectHTTPServer

var routes = Routes()

routes.add(method: .get, uri: "/test") { request, response in
    response.addHeader(.contentType, value: "text/html")
    response.setBody(string: """
        <!DOCTYPE html>
        <html lang="en">
            <head>
                <title>Test!</title>
                <link rel="stylesheet" type="text/css" href="style.css">
            </head>
            <body>
                <div class="Welcome">Hello</div>
            </body>
        </html>
        """)
    response.completed()
}

routes.add(method: .get, 
              uri: "/**", 
          handler: StaticFileHandler(documentRoot: "./webroot", allowResponseFilters: true).handleRequest)

try HTTPServer.launch(name: "localhost", 
                      port: 8181, 
                    routes: routes, 
           responseFilters: [(PerfectHTTPServer.HTTPFilter.contentCompression(data: [:]), HTTPFilterPriority.high)])

Я компилирую и запускаю с Xcode, а http://localhost:8181/test возвращает html, как и ожидалось.

Проблема в расположении внешнего файла CSS. Насколько я могу судить, это должно быть в папке с именем webroot, но где эта папка должна быть при локальном запуске?

Для справки, я рассматриваю это как разработчика iOS, поэтому мои знания в области веб-разработки и конфигурации сервера ограничены.


Обновление

По предложению группы Perfect Slack я добавил файл css в папку проекта (в той же папке, что и Package.swift), и установил Рабочий каталог схемы $(PROJECT_DIR) - но Я получаю 404, пытаясь загрузить http://localhost:8181/style.css

1 Ответ

0 голосов
/ 17 ноября 2018

С помощью группы Perfect Slack я нашел решение. Недостающим элементом для меня была папка webroot. Я предположил, что это был какой-то псевдоним, но оказывается, что вам нужно создать фактическую папку с именем webroot. Итак ...

  1. Установите Рабочий каталог схемы на $(PROJECT_DIR)
  2. В папке проекта создайте папку с именем webroot и добавьте файл css в эту папку. Это должно выглядеть так ...

enter image description here

Я уверен, что все опытные веб-разработчики смеются надо мной прямо сейчас!

...