Обновление 1.1 Проблемы с запуском файлов Go и файлов JSON внутри папки - PullRequest
0 голосов
/ 09 ноября 2018

Обновление 1.1

После получения полезного отзыва об изменении пути обработчика я использовал этот отзыв в своем приложении, но, как ни странно, я все еще получаю некоторую информацию об ошибках. Я пытаюсь понять это сам, но я подумал, что могу поделиться этим с вами, ребята. Это также причина, по которой я отменил ответ, который был дан прямо сейчас. Также некоторые ответы были для меня непонятными, чтобы понять, как это сработает для меня.

package main

import (

    "net/http" // Package http provides HTTP client and server implementations.



)

func main(){
    webHost()

}


func webHost(){
    // Ik heb hier later nog een mapje voor de html pagina's toegevoegd. 
    http.Handle("/go", http.FileServer(http.Dir("./1_Go_Files"))) 
    http.Handle("/html", http.FileServer(http.Dir("./2_Html_Pages"))) 
    http.Handle("/storage", http.FileServer(http.Dir("./3_Json_Storage"))) 
    // -----------------------------------------------------------------

    http.HandleFunc("/homepage", Homehandler) 
    http.HandleFunc("/selectiepagina", Selectiehandler) 
    http.HandleFunc("/userinputpagina", Userinputhandler) 
    http.HandleFunc("/bestelnrpagina", Bestelnrhandler)
    http.HandleFunc("/statuspagina", Statushandler)  




    //FileServer returns a handler that serves HTTP requests with the contents of the file system rooted at root..

    http.Handle("/4_Css_Styling/", http.StripPrefix("/4_Css_Styling/", http.FileServer(http.Dir("css")))) // css styling map.
    http.Handle("/5_Pizza_Img/", http.StripPrefix("/5_Pizza_Img/", http.FileServer(http.Dir("img")))) // image mapje.


}

Итак, вот новая паника (извините за стену текста, я не был уверен, что пропустить, поэтому я просто скопировал и вставил сюда все:

   2018/11/12 10:07:11 http: panic serving [::1]:58084: runtime error: invalid memory address or nil pointer dereference
    goroutine 4 [running]:
    net/http.(*conn).serve.func1(0xc0000de000)
            C:/tools/go/src/net/http/server.go:1746 +0xd7
    panic(0x73a9c0, 0xa34b30)
            C:/tools/go/src/runtime/panic.go:513 +0x1c7
    html/template.(*Template).escape(0x0, 0x0, 0x0)
            C:/tools/go/src/html/template/template.go:95 +0x35
    html/template.(*Template).Execute(0x0, 0x7f7580, 0xc0001160e0, 0x71ac40, 0x7f5300, 0xc000106120, 0x3)
            C:/tools/go/src/html/template/template.go:119 +0x36
    main.Homehandler(0x7f9f60, 0xc0001160e0, 0xc000124000)
            C:/Users/Taavetti/Documents/Go/Sources/src/Projects/VillaBrutus_Main/1_Go_Files/0_Homepagina.go:14 +0xc8
    net/http.HandlerFunc.ServeHTTP(0x7b3ca8, 0x7f9f60, 0xc0001160e0, 0xc000124000)
            C:/tools/go/src/net/http/server.go:1964 +0x4b
    net/http.(*ServeMux).ServeHTTP(0xa438e0, 0x7f9f60, 0xc0001160e0, 0xc000124000)
            C:/tools/go/src/net/http/server.go:2361 +0x12e
    net/http.serverHandler.ServeHTTP(0xc00004b040, 0x7f9f60, 0xc0001160e0, 0xc000124000)
            C:/tools/go/src/net/http/server.go:2741 +0xb2
    net/http.(*conn).serve(0xc0000de000, 0x7fa120, 0xc0000320c0)
            C:/tools/go/src/net/http/server.go:1847 +0x64d
    created by net/http.(*Server).Serve
            C:/tools/go/src/net/http/server.go:2851 +0x2fc
    2018/11/12 10:07:11 http: panic serving [::1]:58087: runtime error: invalid memory address or nil pointer dereference
    goroutine 19 [running]:
    net/http.(*conn).serve.func1(0xc00004cf00)
            C:/tools/go/src/net/http/server.go:1746 +0xd7
    panic(0x73a9c0, 0xa34b30)
            C:/tools/go/src/runtime/panic.go:513 +0x1c7
    html/template.(*Template).escape(0x0, 0x0, 0x0)
            C:/tools/go/src/html/template/template.go:95 +0x35
    html/template.(*Template).Execute(0x0, 0x7f7580, 0xc0001161c0, 0x71ac40, 0x7f5300, 0xc0001061e0, 0x3)
            C:/tools/go/src/html/template/template.go:119 +0x36
    main.Homehandler(0x7f9f60, 0xc0001161c0, 0xc000126000)
            C:/Users/Taavetti/Documents/Go/Sources/src/Projects/VillaBrutus_Main/1_Go_Files/0_Homepagina.go:14 +0xc8
    net/http.HandlerFunc.ServeHTTP(0x7b3ca8, 0x7f9f60, 0xc0001161c0, 0xc000126000)
            C:/tools/go/src/net/http/server.go:1964 +0x4b
    net/http.(*ServeMux).ServeHTTP(0xa438e0, 0x7f9f60, 0xc0001161c0, 0xc000126000)
            C:/tools/go/src/net/http/server.go:2361 +0x12e
    net/http.serverHandler.ServeHTTP(0xc00004b040, 0x7f9f60, 0xc0001161c0, 0xc000126000)
            C:/tools/go/src/net/http/server.go:2741 +0xb2
    net/http.(*conn).serve(0xc00004cf00, 0x7fa120, 0xc00004e240)
            C:/tools/go/src/net/http/server.go:1847 +0x64d
    created by net/http.(*Server).Serve
            C:/tools/go/src/net/http/server.go:2851 +0x2fc
    2018/11/12 10:07:11 http: panic serving [::1]:58088: runtime error: invalid memory address or nil pointer dereference
    goroutine 37 [running]:
    net/http.(*conn).serve.func1(0xc000172000)
            C:/tools/go/src/net/http/server.go:1746 +0xd7
    panic(0x73a9c0, 0xa34b30)
            C:/tools/go/src/runtime/panic.go:513 +0x1c7
    html/template.(*Template).escape(0x0, 0x0, 0x0)
            C:/tools/go/src/html/template/template.go:95 +0x35
    html/template.(*Template).Execute(0x0, 0x7f7580, 0xc0001162a0, 0x71ac40, 0x7f5300, 0xc000106360, 0x3)
            C:/tools/go/src/html/template/template.go:119 +0x36
    main.Homehandler(0x7f9f60, 0xc0001162a0, 0xc000124100)
            C:/Users/Taavetti/Documents/Go/Sources/src/Projects/VillaBrutus_Main/1_Go_Files/0_Homepagina.go:14 +0xc8
    net/http.HandlerFunc.ServeHTTP(0x7b3ca8, 0x7f9f60, 0xc0001162a0, 0xc000124100)
            C:/tools/go/src/net/http/server.go:1964 +0x4b
    net/http.(*ServeMux).ServeHTTP(0xa438e0, 0x7f9f60, 0xc0001162a0, 0xc000124100)
            C:/tools/go/src/net/http/server.go:2361 +0x12e
    net/http.serverHandler.ServeHTTP(0xc00004b040, 0x7f9f60, 0xc0001162a0, 0xc000124100)
            C:/tools/go/src/net/http/server.go:2741 +0xb2
    net/http.(*conn).serve(0xc000172000, 0x7fa120, 0xc000110240)
            C:/tools/go/src/net/http/server.go:1847 +0x64d
    created by net/http.(*Server).Serve
            C:/tools/go/src/net/http/server.go:2851 +0x2fc
    2018/11/12 10:07:11 http: panic serving [::1]:58089: runtime error: invalid memory address or nil pointer dereference
    goroutine 39 [running]:
    net/http.(*conn).serve.func1(0xc0001720a0)
            C:/tools/go/src/net/http/server.go:1746 +0xd7
    panic(0x73a9c0, 0xa34b30)
            C:/tools/go/src/runtime/panic.go:513 +0x1c7
    html/template.(*Template).escape(0x0, 0x0, 0x0)
            C:/tools/go/src/html/template/template.go:95 +0x35
    html/template.(*Template).Execute(0x0, 0x7f7580, 0xc000116380, 0x71ac40, 0x7f5300, 0xc0001064e0, 0x3)
            C:/tools/go/src/html/template/template.go:119 +0x36
    main.Homehandler(0x7f9f60, 0xc000116380, 0xc000124200)
            C:/Users/Taavetti/Documents/Go/Sources/src/Projects/VillaBrutus_Main/1_Go_Files/0_Homepagina.go:14 +0xc8
    net/http.HandlerFunc.ServeHTTP(0x7b3ca8, 0x7f9f60, 0xc000116380, 0xc000124200)
            C:/tools/go/src/net/http/server.go:1964 +0x4b
    net/http.(*ServeMux).ServeHTTP(0xa438e0, 0x7f9f60, 0xc000116380, 0xc000124200)
            C:/tools/go/src/net/http/server.go:2361 +0x12e
    net/http.serverHandler.ServeHTTP(0xc00004b040, 0x7f9f60, 0xc000116380, 0xc000124200)
            C:/tools/go/src/net/http/server.go:2741 +0xb2
    net/http.(*conn).serve(0xc0001720a0, 0x7fa120, 0xc000110340)
            C:/tools/go/src/net/http/server.go:1847 +0x64d
    created by net/http.(*Server).Serve
            C:/tools/go/src/net/http/server.go:2851 +0x2fc
    2018/11/12 10:07:12 http: panic serving [::1]:58090: runtime error: invalid memory address or nil pointer dereference
    goroutine 20 [running]:
    net/http.(*conn).serve.func1(0xc00004cfa0)
            C:/tools/go/src/net/http/server.go:1746 +0xd7
    panic(0x73a9c0, 0xa34b30)
            C:/tools/go/src/runtime/panic.go:513 +0x1c7
    html/template.(*Template).escape(0x0, 0x0, 0x0)
            C:/tools/go/src/html/template/template.go:95 +0x35
    html/template.(*Template).Execute(0x0, 0x7f7580, 0xc000116460, 0x71ac40, 0x7f5300, 0xc000106660, 0x3)
            C:/tools/go/src/html/template/template.go:119 +0x36
    main.Homehandler(0x7f9f60, 0xc000116460, 0xc000126100)
            C:/Users/Taavetti/Documents/Go/Sources/src/Projects/VillaBrutus_Main/1_Go_Files/0_Homepagina.go:14 +0xc8
    net/http.HandlerFunc.ServeHTTP(0x7b3ca8, 0x7f9f60, 0xc000116460, 0xc000126100)
            C:/tools/go/src/net/http/server.go:1964 +0x4b
    net/http.(*ServeMux).ServeHTTP(0xa438e0, 0x7f9f60, 0xc000116460, 0xc000126100)
            C:/tools/go/src/net/http/server.go:2361 +0x12e
    net/http.serverHandler.ServeHTTP(0xc00004b040, 0x7f9f60, 0xc000116460, 0xc000126100)
            C:/tools/go/src/net/http/server.go:2741 +0xb2
    net/http.(*conn).serve(0xc00004cfa0, 0x7fa120, 0xc00004e2c0)
            C:/tools/go/src/net/http/server.go:1847 +0x64d
    created by net/http.(*Server).Serve
            C:/tools/go/src/net/http/server.go:2851 +0x2fc
    2018/11/12 10:07:12 http: panic serving [::1]:58091: runtime error: invalid memory address or nil pointer dereference
    goroutine 41 [running]:
    net/http.(*conn).serve.func1(0xc000172140)
            C:/tools/go/src/net/http/server.go:1746 +0xd7
    panic(0x73a9c0, 0xa34b30)
            C:/tools/go/src/runtime/panic.go:513 +0x1c7
    html/template.(*Template).escape(0x0, 0x0, 0x0)
            C:/tools/go/src/html/template/template.go:95 +0x35
    html/template.(*Template).Execute(0x0, 0x7f7580, 0xc0001cc000, 0x71ac40, 0x7f5300, 0xc000067290, 0x3)
            C:/tools/go/src/html/template/template.go:119 +0x36
    main.Homehandler(0x7f9f60, 0xc0001cc000, 0xc000124300)
            C:/Users/Taavetti/Documents/Go/Sources/src/Projects/VillaBrutus_Main/1_Go_Files/0_Homepagina.go:14 +0xc8
    net/http.HandlerFunc.ServeHTTP(0x7b3ca8, 0x7f9f60, 0xc0001cc000, 0xc000124300)
            C:/tools/go/src/net/http/server.go:1964 +0x4b
    net/http.(*ServeMux).ServeHTTP(0xa438e0, 0x7f9f60, 0xc0001cc000, 0xc000124300)
            C:/tools/go/src/net/http/server.go:2361 +0x12e
    net/http.serverHandler.ServeHTTP(0xc00004b040, 0x7f9f60, 0xc0001cc000, 0xc000124300)
            C:/tools/go/src/net/http/server.go:2741 +0xb2
    net/http.(*conn).serve(0xc000172140, 0x7fa120, 0xc000110440)
            C:/tools/go/src/net/http/server.go:1847 +0x64d
    created by net/http.(*Server).Serve
            C:/tools/go/src/net/http/server.go:2851 +0x2fc
    2018/11/12 10:07:12 http: panic serving [::1]:58092: runtime error: invalid memory address or nil pointer dereference
    goroutine 22 [running]:
    net/http.(*conn).serve.func1(0xc00004d040)
            C:/tools/go/src/net/http/server.go:1746 +0xd7
    panic(0x73a9c0, 0xa34b30)
            C:/tools/go/src/runtime/panic.go:513 +0x1c7
    html/template.(*Template).escape(0x0, 0x0, 0x0)
            C:/tools/go/src/html/template/template.go:95 +0x35
    html/template.(*Template).Execute(0x0, 0x7f7580, 0xc0001cc0e0, 0x71ac40, 0x7f5300, 0xc000067410, 0x3)
            C:/tools/go/src/html/template/template.go:119 +0x36
    main.Homehandler(0x7f9f60, 0xc0001cc0e0, 0xc000126200)
            C:/Users/Taavetti/Documents/Go/Sources/src/Projects/VillaBrutus_Main/1_Go_Files/0_Homepagina.go:14 +0xc8
    net/http.HandlerFunc.ServeHTTP(0x7b3ca8, 0x7f9f60, 0xc0001cc0e0, 0xc000126200)
            C:/tools/go/src/net/http/server.go:1964 +0x4b
    net/http.(*ServeMux).ServeHTTP(0xa438e0, 0x7f9f60, 0xc0001cc0e0, 0xc000126200)
            C:/tools/go/src/net/http/server.go:2361 +0x12e
    net/http.serverHandler.ServeHTTP(0xc00004b040, 0x7f9f60, 0xc0001cc0e0, 0xc000126200)
            C:/tools/go/src/net/http/server.go:2741 +0xb2
    net/http.(*conn).serve(0xc00004d040, 0x7fa120, 0xc00004e3c0)
            C:/tools/go/src/net/http/server.go:1847 +0x64d
    created by net/http.(*Server).Serve
            C:/tools/go/src/net/http/server.go:2851 +0x2fc

Опять же, я все еще пытаюсь выяснить это сам, так как я хочу показать, что я также прилагаю усилия к этому, а не просто пытаюсь получить все ответы от вас. Но было бы полезно, если бы вы могли помочь мне в правильном направлении.

(Также снова я новый пользователь, если я нарушаю некоторые правила в этой теме, пожалуйста, сообщите мне после того, как вы проголосовали против этой угрозы, я действительно наслаждаюсь стековым потоком и пытаюсь узнать, как работает это сообщество.)

VillaBrutus_Main.zip

(Добавлено мое текущее приложение, включая ошибку, может быть, это помогает?, Учтите, что есть некоторые голландские комментарии)

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018
func (mux *ServeMux) Handle(pattern string, handler Handler) {
   mux.mu.Lock()
   defer mux.mu.Unlock()

   if pattern == "" {
       panic("http: invalid pattern")
   }
   if handler == nil {
       panic("http: nil handler")
   }
   if _, exist := mux.m[pattern]; exist {
       // PANIC HAPPEND HERE
       panic("http: multiple registrations for " + pattern)
   }

   if mux.m == nil {
       mux.m = make(map[string]muxEntry)
   }
   mux.m[pattern] = muxEntry{h: handler, pattern: pattern}

   if pattern[0] != '/' {
       mux.hosts = true
   }


}
0 голосов
/ 09 ноября 2018

Вы назначили / с несколькими обработчиками.Взгляните на ваш код дважды:

func webHost(){
    http.Handle("/", 
    http.FileServer(http.Dir("./html_paginas"))) 
    http.Handle("/", http.FileServer(http.Dir("./go_files"))) 
    http.Handle("/", http.FileServer(http.Dir("./storage")))
    //...
}

Так что http в такой ситуации должен паниковать.Итак, исправления для этого:

func webHost(){
    http.Handle("/html", 
    http.FileServer(http.Dir("./html_paginas"))) 
    http.Handle("/go", http.FileServer(http.Dir("./go_files"))) 
    http.Handle("/storage", 
    http.FileServer(http.Dir("./storage")))
    //...
}

Или:

func webHost(){
    http.Handle("/", http.FileServer(http.Dir("./root"))) 
    //...
}

Теперь переместите ваши html, go, каталоги хранения в каталог root.

...