- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试弄清楚如何在 IBM Bluemix 中部署一个使用 Vapor 框架的 Cloudfoundry 应用程序。
IBM 正在为使用他的平台通过他的框架 Kitura 开发服务器端 Swift 应用程序提供便利和指导。我认为作为 Cloudfoundry 提供商,使用适当的 Swift buildpack,我们必须能够部署通用服务器端 Swift 代码。
最后,在学习一些 CF 的同时,我达到了使用 CloudFoundry CLI 的地步:
但是当我加载页面时 ( 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 的新手,这是一种工作方式:
您在 Cloudfoundry 提供商(例如:bluemix)中注册
您在本地有 Vapor 项目。
向其中添加一个 .cfignore 文件,其中包含以下短行:Packages/以避免将包上传到服务器。
向其中添加提到的 manifest.yml 文件。
下载并安装 Cloudfoundry CLI:https://docs.cloudfoundry.org/cf-cli/
使用 CLI:
cf登录
cf推送
最佳答案
在 Bluemix 上运行 Vapor 应用程序:
servers.json
添加 Config
目录(完全使用这些名称)。 servers.json
应包含以下内容: { "myserver": { "port": "$PORT" } }
它将指示 Vapor 在从 Bluemix 使用的 $PORT
环境变量获取的端口上启动名为 myserver
的服务器。
在您的 Procfile
中,添加 --workDir=.
参数,因此它将包含:
web: App --workDir=.
它将指示 Vapor 在运行时在当前目录中查找 Config
目录。
关于swift - 尝试在 Bluemix 上运行 Swift Vapor - 找不到 404 : Requested route does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40095964/
在我的 Package.swift 文件中尝试更新版本后,我的 Vapor 和 Vapor-MySQL 设置失败了。 最终,我想要一个包含以下内容的 Package.swift: .Package(u
在 Vapor 3 中,我能够获取到数据库的 newConnection 并使用以下命令调用原始 sql 查询: return request.withNewConnection(to: .mysql
我有一个静态网页存储在我的 Vapor 服务器的公共(public)文件夹中。它有一个index.html 文件。但是,当我导航到 root (http://localhost:8080) 时,它显示
我有一个静态网页存储在我的 Vapor 服务器的公共(public)文件夹中。它有一个index.html 文件。但是,当我导航到 root (http://localhost:8080) 时,它显示
我关注了 Vapor tutorial创建一个你好应用程序。在 Xcode 中,当我在我的 Mac 上运行运行方案时,应用程序启动并运行,正如我通过打开 http://localhost:8080/看
我正在尝试使用存储库模式将一些代码从 Vapor 3 迁移到 Vapor 4。我已经完成了 documentation of this specific pattern来自 Vapor 4 文档,我想
我可以使用计时器吗,例如 NSTimer在 Vapor(服务器端 Swift)中? 我希望我用 Vapor 编写的服务器可以偶尔主动完成一些任务。例如,每 15 分钟从网络上轮询一些数据。 如何使用
我添加了 .package(url: "https://github.com/vapor-community/postgresql-provider.git", .upToNextMajor(from
我正在使用 Vapor 开发一个简单的 Web API。为了提供更多背景信息,我是后端开发的新手。 API 的使用者将是一个 iOS 应用程序。目前,我不需要用户注册即可使用该应用程序。我想保持这种状
在我的旧 Vapor 3 代码中,我正在创建这样的模型: address.create(on: conn).flatMap { savedAddress in // do something
我从 Vapor 3 更新到 4,从 Xcode 11 更新到 12。现在 Leaf 找不到我的 *.leaf 模板。我收到“noTemplateFile”错误。 最佳答案 我在这里找到了答案:htt
我有一个使用 get 处理程序的 Controller 返回 Future .我想在响应中添加一个 header (具体来说是 Cache-Control)。我在想这应该很容易,但我没有找到如何去做。
我想用最新的 vapor 3.x 构建 vapor 工具箱。 但是,vapor toolbox 的 Package.swift 仍然有 Vapor 2.x 依赖。 .Package(url: "htt
安装 Vapor 后,我遇到以下错误 dyld:未加载库:/usr/local/opt/openssl/lib/libssl.1.0.0.dylib 引用自:/usr/local/bin/vapor
当我尝试运行实现 block 读取和队列的导入时,我从 vapor 队列收到以下错误; ErrorException: touch(): Unable to create file /tmp/stor
我正在使用 Vapor 尝试从另一台服务器获取 XML 文件,问题是我不知道如何将响应正文转换为快速字符串。 let bikesResponse = try drop.client.get("http
我想创建一个命令,您可以在其中创建用户(如数据库种子)。 但是,我无法在命令中访问数据库,我的代码如下: import Command import Crypto struct CreateUserC
他们是否可以替代 Vapor 的 session 中间件包? 我们的客户端平台不支持 cookie。 Vapor 使用 cookie 进行 session 管理。 Redis 有一个 session
对于我的 Vapor 项目,我想主要使用一个 Postgres 数据库。但是,对于某些长时间运行的请求,我想使用同一数据库的单独只读克隆。 这方面的文档非常少。如何在现有默认数据库旁边添加另一个数据库
如何在登录方法中通过电子邮件在 vapor 中正确找到用户并返回该用户或返回错误,我试过: func login(_ req: Request) throws -> Future {
我是一名优秀的程序员,十分优秀!