我的项目结构如下:
/rootfolder
index.html
main.js
main.go
我试图通过FileServer()提供静态javascript文件,它总是将index.html作为响应而不是main.js返回
在main.go中:
serveFile := http.StripPrefix("/res/", http.FileServer(http.Dir(".")))
http.HandleFunc("/", indexHandler)
http.Handle("/res", serveFile)
http.ListenAndServe(":8080", nil)
内部index.html main.js引用如下:
<script src="/res/main.js"></script>
在我的浏览器的网络标签中,似乎FileServer()始终返回index.html文件作为对/res/main.js
的回复
答案 0 :(得分:2)
使用尾部斜杠注册文件处理程序,以指示您要匹配子树。有关使用尾部斜杠的详细信息,请参阅documentation。
MemoryError
另外,使用Handle而不是HandleFunc。
提供索引文件是因为&#34; /&#34;匹配与其他路径不匹配的所有路径。要在这些情况下返回404,请将索引处理程序更新为:
http.Handle("/res/", serveFile)