我正在建立一个网页。该页面应该能够处理不同的 UIView.animateWithDuration(duration, animations: {
viewController?.view.frame = CGRectMake(0,0,320,568)
}, completion: {_ in
})
方法(http
,GET
...)。我的页面在技术上适用于处理每种类型的请求,但对于POST
个请求(在根GET
路径上提供index.html
),我的页面无法正常显示。没有任何图像或CSS正确显示,可能是因为找不到这些文件。
我注意到"/"
在替换为下面的http.Handle
代码时提供了比http.HandleFunc
更好的结果,因为图像和css可以使用以下方式正确显示:
server.go
以下是我的网络服务器,图像和css无法正确显示。一般来说,我的目的是为所有东西使用静态文件,包括html(例如http.FileServer(http.Dir("static"))
http.Handle("/", http.StripPrefix("/", fs))
),并使用标准go来实现一些解决方案。
server.go code
index.html
答案 0 :(得分:0)
您已经对服务器进行了硬编码,以便始终为任何GET请求返回index.html
,无论请求的是什么。因此,如果您的index.html
包含对style.css
的引用,则浏览器将再次发出style.css
请求,您将再次返回index.html
。
我假设你要做的是让所有GET
个请求返回静态文件,而其他动词会做其他事情。您只需将它们传递给文件服务器:
root := "static"
...
case "GET":
if r.URL.Path == "" || r.URL.Path == "/" {
http.ServeFile(w, r, path.Join(root, "index.html"))
} else {
http.ServeFile(w, r, path.Join(root, r.URL.Path))
}
请注意,在调用处理程序时,URL中的所有“..”引用都已删除,攻击者无法使用它来转义静态树。但是ServeFile()
将返回目录列表,因此如果这是一个问题,您需要检查它。