golang http.FileServer 遇到的坑
阿新 • • 發佈:2019-02-18
上次寫了一個2行實現一個靜態伺服器的 文章
今天群裡有個哥們是這麼寫居然返回的是404 見鬼了嘛??
http.handle("/js", http.FileServer(http.Dir("js"))
http.ListenAndServe("8080", nil)
大概的意思就是繫結 路由為 js 的時候訪問這個js 資料夾 看了一下確實程式碼上面沒什麼毛病。但是路徑怎麼修改 也不好使。
我把程式碼拿到我的 電腦上面執行 shitfuck 這是搞什麼啊居然出現下面的這個情況
奇怪居然在我電腦上面也不能執行了。莫非我的資料夾許可權有問題
給賦值一下 777 許可權 重新執行
居然還不好使。來回改路徑 就這麼搗鼓了兩個小時無意中看到一個文章就是說的這個
加一個StripPrefix 方法就好了
那這個玩意是幹嘛的呢。看看手冊
然後我的程式碼就變成這個樣子
http.Handle("/js/", http.StripPrefix("/js/", http.FileServer(http.Dir("js"))))
http.StripPrefix用於過濾request,引數裡的handler的request過濾掉特定的前序,只有這樣,才能正確顯示檔案目錄。 shitfuck
看一下我的路徑 以及下面存放的檔案
修改程式碼完成後就這麼神奇般的解決了
浪費了兩個小時不過 還不錯最起碼解決問題了。
我還能說什麼 書讀的少就是不好