#go
#Вперед
Вопрос:
Ниже приведен код, который выполняется в Windows:
wd, err := os.Getwd()
if err != nil {
log.Fatal(err)
}
t, err := template.ParseFiles(wd "\src\html\index.html")
сбой в Linux из-за обратной косой черты (
)
Как сделать этот код переносимым в ОС?
Комментарии:
1.
Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.
путь /filepath2. Синтаксический анализ файлов(filepath.Join(wd, filepath. FromSlash(«src/html/index /html»)))
3. IIRC, Windows теперь также может обрабатывать
/
пути. Я годами не пользовался Windows, но я видел, как она используется в дикой природе, так почему бы не попробовать это?4. Вам также не нужно добавлять
wd
вручную. Предполагается, что любой относительный путь (не начинающийся с косой черты или буквы диска) имеет корни в рабочем каталоге.5. @Adrian При использовании
t, err := template.ParseFiles("html/index.html")
я получаю ошибку:http: panic serving [::1]:54221: open html/index.html: The system cannot find the path specified.
Ответ №1:
В общем случае используется путь к файлу.Присоединиться — это путь:
path := filepath.Join("separate", "me")
Но путь к файлу.На мой взгляд, FromSlash намного более удобочитаем:
path := filepath.FromSlash("separate/me")