由于其 MIME 类型而无法导入 css [重复]

问题描述 投票:0回答:1

我正在开发一个简单的 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
}

也许我做错了什么?

抱歉有如此大量的注释代码,但我必须展示我已经使用过的代码。我的脑子都融化了

html css go
1个回答
0
投票

浏览器报告 MIME 错误,因为浏览器收到“未找到”响应而不是 CSS 文件。

使用此语句来注册文件处理程序:

router.ServeFiles("/templates/static/*filepath", http.Dir("templates/static"))

使用此 HTML 加载 CSS 文件:

<link type="text/css" href="/templates/static/styles.css">

在操场上运行配置好的路由器!.

© www.soinside.com 2019 - 2024. All rights reserved.