gpt4 book ai didi

swift - 尝试在 Bluemix 上运行 Swift Vapor - 找不到 404 : Requested route does not exist

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:22 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 IBM Bluemix 中部署一个使用 Vapor 框架的 Cloudfoundry 应用程序。

IBM 正在为使用他的平台通过他的框架 Kitura 开发服务器端 Swift 应用程序提供便利和指导。我认为作为 Cloudfoundry 提供商,使用适当的 Swift buildpack,我们必须能够部署通用服务器端 Swift 代码。

最后,在学习一些 CF 的同时,我达到了使用 CloudFoundry CLI 的地步:

  1. 我正在连接到 Bluemix API 端点 (api .eu-gb .bluemix .net)
  2. 登录正常(将超时设置环境变量 CF_DIAL_TIMEOUT 扩展为 20 后)
  3. 进行“cf 推送”。它创建应用程序并上传和编译所有内容。
  4. 应用状态为“正在运行”。

但是当我加载页面时 ( https://sommobilitatcore.eu-gb.mybluemix.net/ ) 我得到:

404 Not Found: Requested route ('sommobilitatcore.eu-gb.mybluemix.net') does not exist.

谁能帮我解决这个问题?谢谢!

一些上下文:

list .yml:

applications:
- path: .
memory: 256M
instances: 1
name: SomMobilitatCore
disk_quota: 1024M
buildpack: https://github.com/IBM-Swift/swift-buildpack.git

简介

web: App

(main.swift 在 Source/App/中)

Vapor Config 文件中没有配置端口,然后 Vapor 正在尝试监听端口 80:

import Vapor
import HTTP

let drop = Droplet()

let _ = drop.config["app", "key"]?.string ?? ""

drop.get("/") { request in
return try drop.view.make("welcome.html")
}

(...)

let port = drop.config["app", "port"]?.int ?? 80

// Print what link to visit for default port
drop.serve()

更新:

终于让它在没有 Procfile 的情况下工作,manifest.yml

- path: .
instances: 1
memory: 256M
disk_quota: 1024M
name: SomMobilitat4
command: App --env=production --workdir="./"
buildpack: swift_buildpack

和/Config/production/servers.json :

{
"production": {
"port": "$PORT"
}
}

我既没有在 main.swift 文件中指定端口变量。使用更新的 Vapor 版本:

import Vapor
import HTTP

let drop = Droplet()

drop.get("/") { request in
return "hello vapor in bluemix cloudfoundry"
}


drop.run()

如果您是 Cloudfoundry 或 IBM Bluemix 的新手,这是一种工作方式:

  1. 您在 Cloudfoundry 提供商(例如:bluemix)中注册

  2. 您在本地有 Vapor 项目。

  3. 向其中添加一个 .cfignore 文件,其中包含以下短行:Packages/以避免将包上传到服务器。

  4. 向其中添加提到的 manifest.yml 文件。

  5. 下载并安装 Cloudfoundry CLI:https://docs.cloudfoundry.org/cf-cli/

    使用 CLI:

  6. cf api https://api.eu-gb.bluemix.net

  7. cf登录

  8. cf推送

最佳答案

在 Bluemix 上运行 Vapor 应用程序:

  1. 使用 servers.json 添加 Config 目录(完全使用这些名称)。 servers.json 应包含以下内容:
        {        "myserver": {            "port": "$PORT"        }    }  

它将指示 Vapor 在从 Bluemix 使用的 $PORT 环境变量获取的端口上启动名为 myserver 的服务器。

  1. 在您的 Procfile 中,添加 --workDir=. 参数,因此它将包含:

    web: App --workDir=.

    它将指示 Vapor 在运行时在当前目录中查找 Config 目录。

关于swift - 尝试在 Bluemix 上运行 Swift Vapor - 找不到 404 : Requested route does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40095964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com