Как установить путь к каталогу http.Dir (..) относительно текущей папки проекта - PullRequest
0 голосов
/ 14 апреля 2020

Ситуация

Я использую GoLand и возникает следующая ситуация:

Следующая структура каталогов:

-project
--a
---website

Индекс. html в проекте / a / website / и Main. go находится в проекте / a / со следующим кодом:

package main

import (
    "net/http"
)

func main() {
    http.Handle("/", http.FileServer(http.Dir("./website/")))
    http.ListenAndServe(":99", nil)
}

Если я запускаю Main. go в GoLand с проектом / a / в качестве папки проекта , вы можете получить доступ к индексу веб-страницы. html на localhost: 99, как и ожидалось, но если я запускаю Main. go с проектом / в качестве папки проекта, путь "./website/" в http.Handle("/", http.FileServer(http.Dir("./website/"))) становится неправильным.

Вопрос

Что мне нужно указать в качестве пути к каталогу в http.Dir(...) для доступа к веб-странице на localhost: 99 независимо от папки текущего проекта?

1 Ответ

1 голос
/ 14 апреля 2020

Используйте абсолютный путь, тогда вы сможете запустить свой проект из любого места.

Вы также можете рассмотреть возможность перемещения значения пути в какую-либо форму конфигурации, скажем, после того, как вы закончили разработку проекта и вы Если вы готовы развернуть его на своем сервере, то жестко запрограммированное абсолютное значение не обязательно поможет вам, вместо этого конфигурация, основанная на файлах или env-var, может исправить это за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...