2017-04-15 1 views
1

In meinem html Ich versuche, JS schließendienen statische Dateien über http mit gehen

<script src="/js/app.js"></script> 

ich verwendet habe auch relativen Pfad versucht (von Server-Standort)

<script src="js/app.js"></script> 

und Verwandte aus dem html-Datei

Meine Dateistruktur

-js 
    app.js 
-templates 
    index.html 
hub.go 
main.go 

main.go ist der Server

func main() { 
    http.HandleFunc("/", rootHandler) 
    http.ListenAndServe(":8080", nil) 
} 

func rootHandler(w http.ResponseWriter, r *http.Request) { 
    http.ServeFile(w, r, "Templates/index.html") 
} 

bin ich etwas fehlt erreiche ich Server css/js durch Server? oder sollte der einfache html funktionieren

Antwort

4

Um Dateien über http zu dienen, definieren Sie einen FileServer für ein Verzeichnis und leiten Sie es zum Beispiel an "/assets/" mit http.Handle.
Nach Setup sollte für Sie arbeiten:

Verzeichnisstruktur:

├── assets/ 
│   ├── js 
│   └── css 
├── templates/ 
└── main.go 

main.go

func main() { 
    http.HandleFunc("/", rootHandler) 
    http.Handle("/assets/", http.StripPrefix("/assets/", http.FileServer(http.Dir("assets")))) 
    http.ListenAndServe(":8080", nil) 
} 

func rootHandler(w http.ResponseWriter, r *http.Request) { 
    http.ServeFile(w, r, "templates/index.html") 
} 

in Ihrer Vorlage-Datei:

<script src="/assets/js/app.js"></script> 
+0

ich die genaue Struktur kopiert haben Sie benutze aber ich bekomme immer noch 404 nicht gefunden und image könnte helfen: http://imgur.com/a/J2ep0 – Higeath

Verwandte Themen