Как использовать Perfect (Swift) под VirtualHost (Apach)?

howmanylife спросил: 13 июня 2018 в 11:03 в: apache

У меня есть Apache на Ubuntu OS. Мой Ubuntu использует Amazon Lightsail. Я установил VirtualHost для использования веб-сервера Perfect, такого как

<Location "/PerfectTemplate">
    ProxyPass http://localhost:8182
    ProxyPassReverse http://localhost:8182
</Location>

Я пытался выполнять POST-действия из HTML, но программы относятся к Apache

var try_post_action = """<form action="./tow" method="post">
//<form action="/tow" method="post">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit" value="Submit">
</form>"""

1 ответ

howmanylife ответил: 14 июня 2018 в 02:50

Следующий фрагмент Apache conf

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) - [L,NS,H=perfect-handler]

и быстрый файл

import PerfectHTTP
import PerfectHTTPServerfunc handler(request: HTTPRequest, response: HTTPResponse) {
    response.setHeader(.contentType, value: "text/html")
    response.appendBody(string: """
<form action="./PerfectTemplate/test" method="get">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit">
</form>
""")
    response.completed()
}let confData = [
    "servers": [
        [
            "name":"localhost",
            "port":8182,
            "routes":[
                ["method":"get", "uri":"/", "handler":handler],
                ["method":"get", "uri":"/test", "handler":handler],
                ["method":"get", "uri":"/**", "handler":PerfectHTTPServer.HTTPHandler.staticFiles,
                 "documentRoot":"./webroot",
                 "allowResponseFilters":true]
            ],
            "filters":[
                [
                "type":"response",
                "priority":"high",
                "name":PerfectHTTPServer.HTTPFilter.contentCompression,
                ]
            ]
        ]
    ]
]do {
    try HTTPServer.launch(configurationData: confData)
} catch {
    fatalError("\(error)")
}

Дополнительное видео по вопросу: Как использовать Perfect (Swift) под VirtualHost (Apach)?

Server Side Swift 3 with Perfect: Getting Started - raywenderlich.com

Server Side Swift with Perfect Perfect Assistant

Templating with Mustache: Server Side Swift with Perfect - raywenderlich.com