【问题标题】:Location of webroot (for css file) in Perfect appPerfect app 中 webroot 的位置(用于 css 文件)
【发布时间】:2018-11-15 21:43:55
【问题描述】:

我已经克隆了 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相同的文件夹),并设置方案$(PROJECT_DIR)工作目录 -但我得到一个 404 试图加载 http://localhost:8181/style.css

【问题讨论】:

    标签: html css swift xcode perfect


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      相关资源
      最近更新 更多