我正在开发一个简单的 golang Web 应用程序。尝试添加一些CSS,但面临下一个问题:
“拒绝应用来自'http://localhost:8080/api/user/static/styles.css'的样式,因为它的MIME类型('text/plain')不是受支持的样式表MIME类型,并且严格的MIME检查是已启用”
当前项目结构
project-root
├── cmd
│ └── app
│ └── main.go
└── templates
└── static
└── styles.css
└── register.html
我尝试了一堆 css 文件导入选项,但没有一个起作用:
<link rel="stylesheet" type="text/css" href="templates/static/styles.css"/>
<link type="text/css" href="static/styles.css">
<link type="text/css" href="/templates/static/styles.css">
<link type="text/css" href="./static/styles.css">
<link rel="stylesheet" href="templates/static/styles.css">
<link rel="stylesheet" href="templates/static/styles.css">
<link rel="stylesheet" type="text/css" href="/styles.css"/>
<link rel="stylesheet" type="text/css" href="./static/styles.css"/>
<link rel="stylesheet" href="./static/styles.css">
还尝试添加
<base href="/">
但这对我不起作用
尝试了这里的解决方案https://stackoverflow.com/questions/48248832/stylesheet-not-loaded-because-of-mime-type,它也不起作用
我正在使用 github.com/julienschmidt/httprouter 来导航这样的请求:
func NewRouter(userController *controller.UserController, htmlController *controller.HTMLController) *httprouter.Router {
router := httprouter.New()
staticHandler := http.StripPrefix("/templates/static/", http.FileServer(http.Dir("templates/static")))
router.GET("/templates/static/*filepath", func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
staticHandler.ServeHTTP(w, r)
})
//router.ServeFiles("/templates/static/*filepath", http.Dir("templates/static"))
//router.ServeFiles("/static/*filepath", http.Dir("C:\\Users\\vadim\\IdeaProjects\\GoLang\\sushkof_test\\templates\\static"))
//http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static/"))))
//router.ServeFiles("/static/*filepath", http.Dir("templates/static"))
router.GET("/api/user/register", htmlController.RegisterHandler)
router.GET("/api/user/home", htmlController.HomeHandler)
router.POST("/api/user/register_user", userController.Save)
//router.ServeFiles("/templates/*filepath", http.Dir("templates"))
return router
}
也许我做错了什么?
抱歉有如此大量的注释代码,但我必须展示我已经使用过的代码。我的脑子都融化了
浏览器报告 MIME 错误,因为浏览器收到“未找到”响应而不是 CSS 文件。
使用此语句来注册文件处理程序:
router.ServeFiles("/templates/static/*filepath", http.Dir("templates/static"))
使用此 HTML 加载 CSS 文件:
<link type="text/css" href="/templates/static/styles.css">