试图在Bluemix上运行Swift Vapor – 404 Not Found:请求的路由
我正在试图弄清楚如何在IBM Bluemix中部署使用Vapor框架的Cloudfoundry应用程序.
IBM正在为他的平台使用他的框架Kitura开发服务器端Swift应用程序提供设施和指导.我认为作为Cloudfoundry提供者,使用正确的Swift buildpack,我们必须能够部署通用服务器端Swift代码. 最后,在学习CF的部分时,我达到了使用CloudFoundry CLI的程度: >我正在连接到Bluemix API端点(api .eu-gb .bluemix .net) 但是当我加载页面(https://sommobilitatcore.eu-gb.mybluemix.net/)时,我得到: 404 Not Found: Requested route ('sommobilitatcore.eu-gb.mybluemix.net') does not exist. 任何人都可以帮助我吗?谢谢! 一些背景: manifest.yml: applications: - path: . memory: 256M instances: 1 name: SomMobilitatCore disk_quota: 1024M buildpack: https://github.com/IBM-Swift/swift-buildpack.git Procfile 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文件中指定port变量.随着更新的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) 使用CLI: 解决方法
要在Bluemix上运行Vapor应用程序:
>使用servers.json添加Config目录(使用这些名称). servers.json应包含以下内容: { "myserver": { "port": "$PORT" } } 它将指示Vapor在从Bluemix使用的$PORT环境变量获取的端口上启动名为myserver的服务器. >在Procfile中,添加–workDir =.参数,所以它将包含: web: App --workDir=. 它将指示Vapor在运行时查找当前目录中的Config目录. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |