Несоответствие типа MIME (“текст / обычный”) (X-Content-Type-Options: nosniff)

#go #mime-types #gorilla #mux

#Вперед #типы mime #горилла #мультиплексирование

Вопрос:

Я использовал функции golang net / http и не имел ошибок, но мне нужен был пользовательский URL, поэтому я внедрил маршрутизатор gorilla / mux и теперь получаю ошибки, подобные этой:

 The resource from “http://localhost:8080/styles.css” was blocked due to MIME type (“text/plain”) mismatch (X-Content-Type-Options: nosniff).
The resource from “http://localhost:8080/main.js” was blocked due to MIME type (“text/plain”) mismatch (X-Content-Type-Options: nosniff).
The resource from “http://localhost:8080/base.js” was blocked due to MIME type (“text/plain”) mismatch (X-Content-Type-Options: nosniff).
  

код перед:

 http.Handle("/transcode", http.HandlerFunc(transcodeHandler))
http.Handle("/tctype", http.HandlerFunc(tctypeHandler))
http.Handle("/sse/dashboard", lp.B)
http.Handle("/upload", http.HandlerFunc(uploadHandler))
http.Handle("/", http.FileServer(http.Dir("views")))
fmt.Println("Listening on port: 8080...")
log.Fatalf("Exited: %s", http.ListenAndServe(":8080", nil))
  

код после:

 r := mux.NewRouter()

r.Handle("/ngx/mapping/{name}", http.HandlerFunc(ngxMappingHandler))
r.Handle("/transcode", http.HandlerFunc(transcodeHandler))
r.Handle("/tctype", http.HandlerFunc(tctypeHandler))
r.Handle("/sse/dashboard", lp.B)
r.Handle("/upload", http.HandlerFunc(uploadHandler))
r.Handle("/", http.FileServer(http.Dir("views")))
fmt.Println("Listening on port: 8080...")
log.Fatalf("Exited: %s", http.ListenAndServe(":8080", r))
  

Комментарии:

1. Пожалуйста, предоставьте краткий, автономный пример. Например, вы не указываете реализацию ngxMappingHandler .

2. Я не думаю, что это необходимо, потому что ngxMappingHandler после добавления gorilla / mux работает нормально, но файлы css и javascript не загружаются.

3. Я получаю ту же проблему при использовании react js и ajax-solr

Ответ №1:

Изменена эта строка:

 http.Handle("/", http.FileServer(http.Dir("views")))
  

В этот:

 r.PathPrefix("/").Handler(http.StripPrefix("/", http.FileServer(http.Dir("views"))))
  

Комментарии:

1. Почему это работает?