Попробуйте заменить http.Dir("/static/")
на http.Dir("static")
(что будет относительным путем к вашему статическому каталогу) или с помощью http.Dir("/absolute/path/to/static")
. Ваш пример с этим единственным изменением работает для меня.
Также см httprouter-х ServeFiles документации:
func (r *Router) ServeFiles(path string, root http.FileSystem)
ServeFiles служит файлы из данной корневой файловой системы. Путь должен заканчиваться на «/ * путь к файлу», затем файлы передаются из пути path/defined/root/dir/*. Например, если root является «/ etc» и * filepath является «passwd», будет использоваться местный файл «/ etc/passwd». Внутри используется http.FileServer, поэтому вместо обработчика NotFound маршрутизатора используется http.NotFound. Для того, чтобы использовать реализацию файловой системы операционной системы, используйте http.Dir:
router.ServeFiles ("/ SRC/* Путь к файлу", http.Dir ("/ Var/WWW"))
Это может также окажут помощь - Third-party router and static files
Должен признаться, что мне непонятно, почему «статический» требуется дважды. Если я установил http.Dir в "." все это работает с единственной разницей, что мне нужно перейти на localhost: 3001/static/static/style.css
Опустить конечную косую черту в "/ static /"? Помимо этого, вы можете попробовать добавить некоторые Printfs в модуль маршрутизатора, чтобы узнать, что происходит. –