问题:在 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中文网其他相关文章!