2013-08-14 11 views
6

Bir çerçeve olarak aynı _base.html'yi kullanarak birden çok sayfada içerik sunmak için golang'ın "html/template" paketini kullanıyorum. Birden fazla html dosyasını (_base.html ve içerik dosyası) birleştirerek bir tane olarak hizmet ediyorum. Sağ dizine _base.html noktalarında benim .css html bağlantı etiketini kullanarak çünkü benim css gayet kılan benim Web sunucusu kök üzerinde AksiFarklı dizin düzeylerinde css sunan Golang şablonu

func main() { 
http.HandleFunc("/", indexHandler) 
http.HandleFunc("/blog/", blogHandler) 
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("http/css")))) 
http.ListenAndServe(":1337", nil) 
} 

func indexHandler(w http.ResponseWriter, r *http.Request) { 
index := template.Must(template.ParseFiles(
    "http/html/_base.html", 
    "http/html/index.html", 
)) 
index.Execute(w, nil) 
} 

func blogHandler(w http.ResponseWriter, r *http.Request) { 
blog := template.Must(template.ParseFiles(
    "http/html/_base.html", 
    "http/html/blog.html", 
)) 
blog.Execute(w, nil) 
} 

:

<link href="css/style.css" rel="stylesheet"> 

ancak zaman//////////////// Css benim seviyemde bir seviye aşağı gitti (ya da ben bunu görmek istiyorum, ancak bir seviye yukarı gitti) ve böylece css href aniden /blog/css/style.css ve böylece işaret render olmaz.

Bu, _base.html ile birleştirdiğim her içerik dosyasında css düzeyini belirterek kolayca düzeltilebilir, ancak başka, daha temiz ve farklı bir yol olması gerektiğini hissediyorum. Bu davada bencim yanlış mı yoksa yanlış mı?

cevap

5

test etmemiş mi, bu yüzden gerçekten emin değilim ama ne

<link href="/css/style.css" rel="stylesheet"> 

için

<link href="css/style.css" rel="stylesheet"> 

değiştirme hakkında?

+0

Darn, ben bir n00b'yim, ve siz çok yardımcı efendim. Bilinmeli ama unutmuş olmalı. Çok teşekkür ederim – Dani