我正在建立一个网页。该页面应该能够处理不同的http
方法 ( GET
, POST
...)。我的页面在技术上可以正常工作并处理每种类型的请求,但在GET
请求(index.html
在根"/"
路径上提供服务)的情况下,我的页面无法正确显示。图像或 css 均未正确显示,大概是因为找不到这些文件。
我注意到,http.Handle与http.HandleFunc代入server.go下面的代码相比,它提供了更好的结果,因为图像和 css 确实使用以下方法正确显示:
http.FileServer(http.Dir("static"))
http.Handle("/", http.StripPrefix("/", fs))
以下是我的 Web 服务器,图像和 css 未正确显示。一般来说,我的意图是对所有内容使用静态文件,包括 html(例如index.html),并仅使用标准 go 来实现一些解决方案。
server.go 代码
package main
import (
"net/http"
"fmt"
)
func indexHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Add("Content Type", "text/html")
switch r.Method {
case "GET":
http.ServeFile(w, r, "./static/index.html")
case "POST":
fmt.Pprintf(w, "POST!")
case "PUT":
fmt.Pprintf(w, "PUT!")
case "DELETE":
fmt.Pprintf(w, "DELETE!")
default:
fmt.Pprintf(w, "Default!")
}
}
func main() {
http.HandleFunc("/", indexHandler)
http.ListenAndServe(":3000", nil)
}
繁花如伊
相关分类