GET 404 Not Found при загрузке таблицы стилей
У меня проблемы со статическим файловым сервером 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"))
}
Где моя файловая структура: (где -> означает, что это каталог)
-> 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 и использую элемент inspect, чтобы увидеть сеть, http://127.0.0.1:3000/static/layouts/main.css запрашивается правильно, но выдается ошибка 404. Если я перейду на http://127.0.0.1:3000/static, я получаю сообщение
Cannot GET /static
. Я думаю, что это может быть проблема с путем к файлу, но я пробовал много разных комбинаций.s, / s и т.д. и ничего не добился.
Как я могу решить эту ошибку 404?
1 ответ
Нашел исправление. Когда я переместил таблицы стилей в отдельную папку, CSS работал нормально.
Таким образом, моя файловая структура теперь такова:
-> styles
main.css
-> views
-> layouts
main.html
index.html
main.go
И в
func main()
, Статический сервер теперь
app.Static("/static", "./styles")
. Больше ничего не изменилось.