2015-02-28 5 views
2

Я использую Go с Gorilla Mux.Как найти файлы CSS с помощью golang Gorilla mux

Это мой webserver.go файл

package main 

import (
    "log" 
    "net/http" 

    "github.com/gorilla/mux" 
) 

func HomeHandler(rw http.ResponseWriter, r *http.Request) { 
    http.ServeFile(rw, r, "index.html") 
} 

func main() { 
    r := mux.NewRouter() 
    r.HandleFunc("/", HomeHandler) 

    http.Handle("/", r) 

    log.Println("Server running on :8080") 
    err := http.ListenAndServe(":8080", r) 
    if err != nil { 
    log.Printf("Error: %s\n", err.Error()) 
    } 
} 

В той же папке, где находится файл webserver.go находится это файл index.html.

/- вот index.html

/CSS - Все CSS-файлы

/изображения - Все изображения, файлы ресурсов

мне удается загрузить файл index.html с помощью приведенный выше код, но он, похоже, не загружает файлы и изображения CSS.

внутри индекс.html файл у меня есть.

<link rel="stylesheet" type="text/css" href="css/demo.css" /> 
<link rel="stylesheet" type="text/css" href="css/style.css" /> 
<link rel="stylesheet" type="text/css" href="css/animate-custom.css" /> 

Так он должен найти файлы CSS или я должен убедиться, что «Go» можно найти папку CSS и изображения? Как?

ответ

4

Вы можете использовать http.FileServer для обслуживания всех статических файлов независимо от gorilla/mux.

package main 

import (
    "log" 
    "net/http" 

    "github.com/gorilla/mux" 
) 

func HomeHandler(rw http.ResponseWriter, r *http.Request) { 
    http.ServeFile(rw, r, "index.html") 
} 

func main() { 
    r := mux.NewRouter() 

    cssHandler := http.FileServer(http.Dir("./css/")) 
    imagesHandler := http.FileServer(http.Dir("./images/")) 

    http.Handle("/css/", http.StripPrefix("/css/", cssHandler)) 
    http.Handle("/images/", http.StripPrefix("/images/", imagesHandler)) 
    r.HandleFunc("/", HomeHandler) 
    http.Handle("/", r) 

    log.Println("Server running on :8080") 
    log.Fatal(http.ListenAndServe(":8080", nil)) 
} 
+0

Как бы добавить это к моему приведенному выше коду, чтобы он работал с моей структурой точно? – user1185305

+0

Я обновил код, чтобы он соответствовал вашей структуре проекта. – tarrsalah

+0

Спасибо за подробные инструкции. К сожалению, я тоже не мог работать. Используя свой код выше, как есть. Можно ли как-то отлаживать, чтобы понять, почему мои файлы CSS не загружены? – user1185305

Смежные вопросы