2017-02-16 6 views
1

を返します。 main.goに代わりmain.jsのファイルサーバーは、()は、常に次のように私のプロジェクト構造があるindex.htmlを

次のようにindex.htmlをmain.jsインサイド

serveFile := http.StripPrefix("/res/", http.FileServer(http.Dir("."))) 
http.HandleFunc("/", indexHandler) 
http.Handle("/res", serveFile) 
http.ListenAndServe(":8080", nil) 

が参照される:

私のブラウザでネットワーク]タブから
<script src="/res/main.js"></script> 

、あなたがしたいことを示すために末尾のスラッシュでファイルハンドラを登録するファイルサーバーは、()は常に/res/main.js

答えて

2

への応答として、index.htmlファイルを返していることが表示されますサブツリーと一致する。末尾にスラッシュを使用する方法については、documentationを参照してください。

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

また、HandleFuncではなくHandleを使用してください。

「/」は他のパスと一致しないすべてのパスと一致するため、インデックスファイルが配信されました。このような場合に404​​を返すには、インデックスハンドラを次のように更新します。

func indexHandler(w http.ResponseWriter, r *http.Request) { 
    if r.URL.Path != "/" { 
     http.Error(w, "Not found", 404) 
     return 
    } 
    ... whatever code you had here before. 
} 
関連する問題