Golang中点击链接跳转后CSS文件加载失败问题
Golang中点击链接跳转后CSS文件加载失败问题







大家好!
我是网页开发的新手,在我的项目中遇到了一些问题。不知道为什么,当你点击链接跳转到下一页时,CSS文件没有被正确加载(文本应该变成蓝色……请看图片)。我觉得这很奇怪,因为在登录页面上CSS加载得非常好。如果有人能帮助我,我将非常感激!
谢谢 (:
更多关于Golang中点击链接跳转后CSS文件加载失败问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
2 回复
不用担心各位,我在发帖后马上就找到问题了!在我的"nextpage.gohtml"文件中,我忘记在static前面加斜杠"/"。原本是:
link rel="stylesheet" href="static/css/nextPage.css
但应该是:
link rel="stylesheet" href="/static/css/nextPage.css
更多关于Golang中点击链接跳转后CSS文件加载失败问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在Golang中处理静态文件时,需要正确配置静态文件服务。从你的代码来看,问题在于没有为CSS文件设置静态文件路由。当点击链接跳转到新页面时,浏览器会尝试从新的URL路径加载CSS文件,但服务器没有提供对应的静态文件服务。
以下是修正后的代码示例:
首先,确保在main.go中正确设置静态文件路由:
package main
import (
"net/http"
"text/template"
)
func main() {
// 设置静态文件服务
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
http.HandleFunc("/", indexHandler)
http.HandleFunc("/page2", page2Handler)
http.ListenAndServe(":8080", nil)
}
func indexHandler(w http.ResponseWriter, r *http.Request) {
tmpl := template.Must(template.ParseFiles("templates/index.gohtml"))
tmpl.Execute(w, nil)
}
func page2Handler(w http.ResponseWriter, r *http.Request) {
tmpl := template.Must(template.ParseFiles("templates/page2.gohtml"))
tmpl.Execute(w, nil)
}
然后在HTML模板中,使用正确的静态文件路径引用CSS:
<!DOCTYPE html>
<html>
<head>
<title>Page 2</title>
<link rel="stylesheet" type="text/css" href="/static/css/style.css">
</head>
<body>
<h1>这是页面2</h1>
<p>这个文本应该是蓝色的</p>
<a href="/">返回首页</a>
</body>
</html>
项目目录结构应该是:
project/
├── main.go
├── static/
│ └── css/
│ └── style.css
└── templates/
├── index.gohtml
└── page2.gohtml
关键点:
- 使用
http.StripPrefix和http.FileServer创建静态文件服务 - CSS文件路径使用
/static/css/style.css格式 - 确保静态文件目录结构正确
这样配置后,CSS文件就能在所有页面正确加载了。

