首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift上的GCDWebServer静态网站

Swift上的GCDWebServer静态网站
EN

Stack Overflow用户
提问于 2015-10-04 22:19:15
回答 2查看 2.6K关注 0票数 5

我正在尝试让GCDWebServer显示静态内容。我有代码

代码语言:javascript
复制
import UIKit
import Foundation

class ViewController: UIViewController {

  var webServer:GCDWebServer?

  let urlpath = NSBundle.mainBundle().pathForResource("index", ofType: "html", inDirectory: "www")

  override func viewDidLoad() {
    super.viewDidLoad()

    initWebServer()

  }

  func initWebServer() {

    webServer = GCDWebServer()

    webServer!.addGETHandlerForBasePath("/", directoryPath: urlpath, indexFilename: "index.html", cacheAge: 3600, allowRangeRequests: true)

    webServer!.startWithPort(8080, bonjourName: "GCD Web Server")

    print("Visit \(webServer!.serverURL) in your web browser")
}
}

我还有一个文件夹www在我的Xcode项目的根目录下

当服务器启动时,它在控制台中显示服务器地址是192.168.1.2:8080。但是当我试图在浏览器中打开这个网址时,我在控制台上看不到index.html、黑屏和404。

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2016-02-01 07:01:19

您需要将目录的完整路径传递给directoryPath,,请查看下面的代码示例:

代码语言:javascript
复制
private func loadDefaultIndexFile() {
    let mainBundle = NSBundle.mainBundle()
    let folderPath = mainBundle.pathForResource("www", ofType: nil)
    print("HTML base folder Path: \(folderPath)")
    self.gcdWebServer.addGETHandlerForBasePath("/", directoryPath: folderPath, indexFilename: "index.html", cacheAge: 0, allowRangeRequests: true)
    self.gcdWebServer.startWithPort(8080, bonjourName: nil)
    self.webView.loadRequest(NSURLRequest(URL: self.gcdWebServer.serverURL))
}

希望能有所帮助

票数 5
EN

Stack Overflow用户

发布于 2015-10-04 22:49:30

在初始化时,您需要将路径传递给要提供服务的目录,而不是将索引文件传递给GCDWebServer。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32934446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档