Отображение пользовательской страницы ошибки 404 со стандартным http-пакетом

Предполагая, что у нас есть:

http.HandleFunc("/smth", smthPage)
http.HandleFunc("/", homePage)

Пользователь видит простую "страница 404 не найдена", когда он пытается ввести неправильный URL. Как я могу вернуть пользовательскую страницу для этого случая?

Обновление, касающееся gorilla/mux

Принятый ответ подходит для тех, кто использует чистый пакет net/http.

Если вы используете gorilla/mux, вы должны использовать что-то вроде этого:

func main() {
    r := mux.NewRouter()
    r.NotFoundHandler = http.HandlerFunc(notFound)
}

И реализовать func notFound(w http.ResponseWriter, r *http.Request)как хотите.

62
задан shalakhin 9 May 2012 в 10:06
поделиться