[英]Go is not rendering CSS elements for all HTML pages
我是Go編程的新手。 我遵循了這個( https://golang.org/doc/articles/wiki/ )教程。 我想在此基礎上構建一個包含多個頁面和CSS元素的網站。
在我使用的主要方法中
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))
這是我的makeHandler函數。 應該將所有請求定向到正確的處理程序。
func makeHandler( fn func( http.ResponseWriter, *http.Request, string)) http.HandlerFunc{
return func( w http.ResponseWriter, r *http.Request ){
//extract page title from request
//and call the provided handler 'fn'
m := validPath.FindStringSubmatch(r.URL.Path)
fmt.Println(m)
if m == nil{
http.NotFound(w,r)
return
}
fn(w,r,m[2])
}
}
當我打印'm'時,所有請求都以view為前綴(我有一個viewHandler,然后調用它來渲染模板)。
http.HandleFunc("/view/", makeHandler(viewHandler))
因此,如果我想查看aboutSite頁面,則該URL將具有/ view / aboutSite,然后將其定向到viewHandler。
問題在於html模板具有CSS鏈接,並且這些鏈接也以“ view”作為前綴。 因此,如果我的html模板中有這行代碼
<link rel="stylesheet" href="css/bootstrap.min.css">
makeHandler會收到一個以“ view”為前綴的URL。 /view/css/bootstrap.min.css
我需要添加/更改什么以便呈現CSS元素?
您需要在href
屬性中使用絕對路徑(即,使用以/
開頭的路徑),否則該路徑將被視為相對於當前頁面的相對路徑,從而導致您看到的行為。
因此,例如:
<link rel="stylesheet" href="/css/bootstrap.min.css">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.