Шаблоны Golang не работают, используя относительные пути

Я просто не понимаю шаблоны Go и относительные пути...

Используя следующую структуру каталогов:

Application Directory
  program.go
  program executable
-- css
     program.css
-- pages
     index.gohtml
     wartree.gohtml

На данный момент мои шаблоны представляют собой чистый HTML, который используется в различных средах в течение нескольких лет.

У меня есть следующий код Go:

package main

import (
    "fmt"
    "log"
    "net/http"
    "html/template"
)

func main() {
    http.HandleFunc("/", index)
    http.HandleFunc("/wartree", wartree)

    log.Fatal(http.ListenAndServe(":8080", nil))
}


func index(w http.ResponseWriter, r *http.Request) {
    fmt.Println("Index has been called...")

    tmpl := template.Must(template.ParseGlob("pages/*"))
    tmpl.Execute(w, nil)
}

func wartree(w http.ResponseWriter, r *http.Request) {
    fmt.Println("wartree has been called...")

    tmpl := template.Must(template.ParseFiles("wartree.gohtml"))
    tmpl.Execute(w, nil)
}

Оба шаблона имеют следующую строку в заголовках шаблонов HTML...<link href="css/nav.css" type="text/css" media="screen" />

Когда я запускаю программу, css не используется, и я не могу вызвать шаблон Wartree. Он просто снова вызывает index???

Я даже пытался изменить путь к CSS, чтобы он был абсолютным, но это не имело никакого значения, и я не вижу ошибок ни в Go, ни в браузере.

Я просто не получаю шаблоны и пути Go. Похоже.

0 ответов

Другие вопросы по тегам