Ответ 1
Добавить обработчик для обработки статических файлов из указанного каталога.
например. создать каталог {server.go}/resources/и использовать
http.Handle("/resources/", http.StripPrefix("/resources/", http.FileServer(http.Dir("resources"))))
вместе с /resources/somethingsomething.css
Причиной использования StripPrefix является то, что вы можете изменить обслуживаемый каталог, как вам угодно, но сохраняйте ссылку в HTML тем же.
например. для обслуживания из /home/www/
http.Handle("/resources/", http.StripPrefix("/resources/", http.FileServer(http.Dir("/home/www/"))))
Обратите внимание, что это приведет к тому, что список каталогов ресурсов будет открыт. Если вы хотите предотвратить это, есть хороший фрагмент в блоге фрагмента:
http://gosnip.posterous.com/disable-directory-listing-with-httpfileserver
Изменить: Posterous теперь ушел, поэтому я просто вытащил код из списка рассылки golang и разместил его здесь.
type justFilesFilesystem struct {
fs http.FileSystem
}
func (fs justFilesFilesystem) Open(name string) (http.File, error) {
f, err := fs.fs.Open(name)
if err != nil {
return nil, err
}
return neuteredReaddirFile{f}, nil
}
type neuteredReaddirFile struct {
http.File
}
func (f neuteredReaddirFile) Readdir(count int) ([]os.FileInfo, error) {
return nil, nil
}
Оригинальный пост, обсуждающий его: https://groups.google.com/forum/#!topic/golang-nuts/bStLPdIVM6w
И используйте его следующим образом:
fs := justFilesFilesystem{http.Dir("resources/")}
http.Handle("/resources/", http.StripPrefix("/resources/", http.FileServer(fs)))