問題:在Go 中渲染CSS 時找不到404 頁面
當嘗試在Go Web 應用程式中使用CSS 檔案時,用戶可能會遇到404錯誤,表示找不到CSS檔案。儘管按照提供的文件中的說明進行操作,仍然會出現此問題。
相關目錄結構與程式碼:
相關目錄結構如下:
src/ |__ css/somefilename.css |__ server/server.go
server.go中的程式碼包括:
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))
HTML範本中src/templates/layout.html,CSS檔案引用為:
<link rel="stylesheet" type="text/css" href="../css/css490.css" />
問題來源及解決方案:
由於提供的路徑而發生錯誤FileServer 目錄不是絕對路徑。 Go 中的相對路徑被解析為運行應用程式的工作目錄。
要解決此問題,使用者可以確保應用程式從正確的工作目錄運行,通常在命令列參數中指定運行程序。或者,可以在 FileServer 函數中明確提供 CSS 目錄的絕對路徑。
例如,如果工作目錄是 src,則執行 go run server/server.go 將正確解析路徑,並且CSS 檔案可在 localhost:8080/css/ 存取。但是,從 src/server 資料夾執行 go run server.go 將導致 404 錯誤。要在晚上修復此問題,使用者可以修改程式碼以使用絕對路徑:
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("/src/css"))))
透過指定CSS目錄的完整路徑,無論工作目錄如何,程式都可以找到CSS檔案它從中運行。
以上是為什麼在我的 Go Web 應用程式中提供 CSS 檔案時會出現 404 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!