前提・実現したいこと
Go言語でwebアプリを作っています.新しい関数を追加した時に,何もおこらないことがあったので質問します.
dockerでgo(:8080)とmysql(:3360)のコンテナが動いており,そこでgoのアプリが動いています.
発生している問題・エラーメッセージ
main.go
1package main 2 3import ( 4 "log" 5 "net/http" 6 7 "./auth" 8 "./webpages" 9 10 _ "github.com/go-sql-driver/mysql" 11) 12 13func main() { 14 15 16 http.HandleFunc("/", webpages.TopPage) 17 18 http.HandleFunc("/logout", auth.Logout) 19 20 // http.HandleFunc("/test", webpages.Test) 21 log.Println("Listening on :8080...") 22 http.ListenAndServe(":80", nil) 23} 24
webpages.TopPage,auth.Logout,webpages.Testはともに空の関数.
localhost:8080/logoutにアクセスすると,localhost:8080/に飛ばされてしまう.
(このとき,とくにエラーは出ない)
localhost:8080/testにアクセスすると,正常に動作する.
試したこと
元々,関数の中には処理が書いてありましたが,処理を全てコメントアウトしても改善しませんでした.
追記
パッケージが分かれていることが問題かと思い,webpagesの中にLogout関数を定義したところ,やはり同様の症状が確認されました.
func Logout(w http.ResponseWriter , r *http.Request){ fmt.Println("hoge") auth.Logout(w,r) }
hoge
の出力もありませんでした
func Logout(w http.ResponseWriter , r *http.Request){ fmt.Println("auth.Logout") }
auth.Logoutの処理を追記しました.
アドレスを/logoutから/logoutpageに変更したら改善しました.
補足情報(FW/ツールのバージョンなど)
go version go1.14.2 darwin/amd64
Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b Built: Wed Mar 11 01:21:11 2020 OS/Arch: darwin/amd64 Experimental: false
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/29 10:47
2020/05/29 13:12
退会済みユーザー
2020/05/29 13:43
退会済みユーザー
2020/05/30 08:38