Как вызвать файлы stati c HTML - PullRequest
0 голосов
/ 04 августа 2020

Я создал папку stati c, содержащую index.html файл, и в моем go файле я написал:

package main

import (
    "net/http"
)

func main() {
    http.Handle("/", http.FileServer(http.Dir("./static")))

    http.ListenAndServe(":8482", nil)
}

И он отлично работает при изучении http://localhost:8482/

Я пытался написать код как:

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

Но он не работает при изучении http://localhost:8482/static с ошибкой 404

введите описание изображения здесь

1 Ответ

2 голосов
/ 04 августа 2020

http.Handle("/static", http.FileServer(http.Dir("./static"))) просто означает: «всякий раз, когда кто-то подключается к .../static, перенаправляйте весь запрос на файловый сервер, расположенный в каталоге ./static".

Однако URL-адрес передается к файловому серверу как есть. Другими словами, файловый сервер принимает запрос от пользователя и считает, что пользователь ищет файл с именем «stati c» в каталоге root ("./static").

Фактически, если вы просто поместили файл с именем «stati c» в каталог «./static», переход к .../static будет обслуживать этот файл.

Таким образом, для исправления требуются две вещи:

  1. Измените префикс пути на «/static/», а не на «/static», чтобы все файлы в каталоге stati c можно было перенаправить на файловый сервер (а не только на «/ stati * 1030» * "request)
  2. Удалите префикс пути" /static/ "из запроса перед его передачей на файловый сервер.

Примерно так:

http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static"))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...