Наличие HTTP-сервера для отправки статического файла с использованием FileServer в Go - PullRequest
0 голосов
/ 30 июня 2019

Обслуживание статического файла в Go довольно просто:

import (
  "log"
  "net/http"
)

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

  log.Println("Listening...")
  http.ListenAndServe(":3000", nil)
}

Но в моем проекте мне нужно иметь Server Push для связанных файлов, когда пользователь запрашивает файлы HTML.В моей реализации Java у меня есть файл .link, в котором перечислены связанные файлы.Например:

index.html:

<html>
   <head>
       <link rel="stylesheet" type="text/css" href="/style.css" >
   </head>
   <body>
       <img src="/sample.png">
   </body>
</html>

index.html.link:

/sample.png
/style.css

Когдаклиент запрашивает index.html , сервер проверяет, существует ли index.html.link и поддерживает ли сервер http2 Push, он отправляет файлы, перечисленные в *. link file Как реализовать такую ​​функцию с помощью FileServer, чтобы упростить задачу?

Или, как еще один вариант, я могу использовать обратный прокси-сервер Nginx и добавить заголовок Link к ответам, как объяснено здесь .

Link: </style.css>; as=style; rel=preload
Link: </sample.png>; as=image; rel=preload

Или есть лучшее решение?

...