我正在嘗試為我的路由器使用標準的 Go http 包。在我的 main.go 中它開始:func main() { mux := http.NewServeMux() fs := http.FileServer(http.Dir("static")) handler := http.StripPrefix("/static/", fs) mux.Handle("/static/", handler) mux.HandleFunc("/my-example-url/", FooHandler)}在 FooHandler() 里面我有一些 println()func FooHandler(w http.ResponseWriter, r *http.Request) { println("r.URL.Path->",r.URL.Path) //more business logic}// output:r.URL.Path-> /my-example-url/static/css/normalize.cssr.URL.Path-> /my-example-url/static/libs/xss.js所以 url 的初始部分不應該存在(/my-example-url/ 部分)我認為這只會在我嘗試使用尾部斜線提供端點時發生,例如:mux.Handle("/my-example-url/", handler)我的最終目標是根據我試圖在尾部斜杠后傳遞到 url 中的 id 獲取一些資源,例如:http://localhost:3001/my-example-url/bb98610
1 回答

至尊寶的傳說
TA貢獻1789條經驗 獲得超10個贊
在觸發靜態資源請求的 html 文件中,您很可能使用相對路徑而不是絕對路徑,這會導致瀏覽器將該相對路徑附加到位置欄中已有的路徑。
例如:
<link href="static/css/normalize.css" rel="stylesheet">
將由瀏覽器轉換為/my-example-url/static/css/normalize.css
.
相反,您想使用(注意前導斜線):
<link href="/static/css/normalize.css" rel="stylesheet">
- 1 回答
- 0 關注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消