2015-10-04 71 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)) 
} 

希望它可以幫助