2015-10-04 43 views
3

我想让GCDWebServer显示静态内容。我有代码Swift上的GCDWebServer静态网站

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。

我在做什么错?

回答

0

您需要将路径传递到目录,以便在初始化时不将索引文件提供给GCDWebServer。

+0

有一些怀疑,我把事情搞糟与通。哪一个是正确的? –

5

你需要通过你的目录FULLPATH到目录路径,请看看我下面的代码示例:

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)) 
} 

希望它可以帮助