【问题标题】:GET 404 Not Found when loading stylesheet加载样式表时找不到 GET 404
【发布时间】:2021-02-27 00:06:13
【问题描述】:

我在使用 Go Fiber 的静态文件服务器时遇到问题。 我想加载一个在模板中使用的 CSS 样式表。模板本身工作正常。

func main() {
    // Create a new engine.
    engine := html.New("./views", ".html")

    // Fiber instance
    app := fiber.New(fiber.Config{Views: engine})

    app.Static("/static", "./views")

    app.Get("/layout", func(c *fiber.Ctx) error {
        // Render index within layouts/main
        return c.Render("index", fiber.Map{
            "Title": "Hello, World!",
        }, "layouts/main")
    })

    // Start server
    log.Print(app.Listen(":3000"))

}

我的文件结构在哪里:(a -> 表示它是一个目录)

-> views
    -> layouts
        main.css
        main.html
    index.html
main.go

而main.html的内容是:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="static/layouts/main.css">

    <title>Hello, world!</title>
</head>
<body>
{{embed}}
</body>
</html>

文件 ./views 肯定存在,因为当我将它添加到 main 时,没有任何内容打印到日志:

if _, err := os.Stat("./views"); os.IsNotExist(err) {
    log.Print("Path doesn't exist")
}

当我在 localhost 上运行它并使用检查元素查看网络时,http://127.0.0.1:3000/static/layouts/main.css 被正确查询但抛出 404 错误。如果我转到http://127.0.0.1:3000/static,我会收到一条消息说Cannot GET /static。我认为这可能是文件路径问题,但我尝试了许多不同的 .s、/s 等组合,但一无所获。

我该如何解决这个 404 错误?

【问题讨论】:

    标签: go static web-deployment static-files go-fiber


    【解决方案1】:

    我找到了解决办法。 当我将样式表移到它们自己的文件夹中时,css 工作得很好。

    所以我现在的文件结构是这样的:

    
    -> styles
        main.css
    -> views
        -> layouts
            main.html
        index.html
    main.go
    

    func main() 中,静态服务器现在是app.Static("/static", "./styles")。没有其他任何改变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-25
      • 2016-10-13
      • 2019-09-26
      • 2010-09-26
      • 2014-03-14
      • 1970-01-01
      • 2017-03-03
      • 2015-07-26
      相关资源
      最近更新 更多