Webroot(用于CSS文件)在Perfect app中的位置

时间:2018-11-15 21:43:55

标签: html css swift xcode perfect

我已经克隆了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开发人员来的,所以我对Web开发和服务器配置的了解有限。


更新

根据对Perfect Slack组的建议,我将css文件添加到项目文件夹(与Package.swift相同的文件夹),并设置方案{{ 1}}-但是我正在尝试加载404 $(PROJECT_DIR)

1 个答案:

答案 0 :(得分:1)

在Perfect Slack小组的帮助下,我找到了解决方案。对我而言,缺少的是webroot文件夹。我以为这是某种别名,但事实证明您确实需要创建一个名为webroot的实际文件夹。所以...

  1. 将方案的工作目录设置为$(PROJECT_DIR)
  2. 在项目文件夹中,创建一个名为webroot的文件夹,然后将css文件添加到该文件夹​​。它应该看起来像这样……

enter image description here

我确定所有经验丰富的网络开发人员现在都在嘲笑我!