Fileserver()始终返回index.html

时间:2017-02-16 02:34:29

标签: go

我的项目结构如下:

/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的回复

1 个答案:

答案 0 :(得分:2)

使用尾部斜杠注册文件处理程序,以指示您要匹配子树。有关使用尾部斜杠的详细信息,请参阅documentation

MemoryError

另外,使用Handle而不是HandleFunc。

提供索引文件是因为&#34; /&#34;匹配与其他路径不匹配的所有路径。要在这些情况下返回404,请将索引处理程序更新为:

http.Handle("/res/", serveFile)