Golang 句柄静态文件夹

Golang handle static folder

我无法将文件放在静态文件夹中。我正在使用大猩猩 mux 包。

main.go代码:

fs := http.FileServer(http.Dir("static"))
mainRouter.PathPrefix("/static/").Handler(http.StripPrefix("/static/", fs))
http.Handle("/", &mainRouter)

项目结构:

static
templates
--style
--javascript
--...
main.go

当我点击索引页时:

loclalhost:8080/cruise_schedule

我得到了所有的样式表和js文件,但是当我跳转到另一个页面时:

localhost:8080/cruise_schedule/selected_cruise/e58ed042aad24b9b87fba8917c085534

我收到以下错误:

Refused to apply style from 'http://localhost:8080/cruise_schedule/static/style/style.css' because its MIME type ('text/plain') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

和:

http://localhost:8080/cruise_schedule/static/javascript/resources.js 

我应该怎么做才能正确提供静态文件?

您的 Go 应用程序在这里没有问题,您生成的 HTML 输出是。

您的错误消息说您的 sub-page 试图从 http://localhost:8080/cruise_schedule/static/... 加载它的 CSS,而实际上它 应该 http://localhost:8080/static/...。第一个 URL 不会提供静态文件,因为它不在 /static 前缀之下,并且您的应用程序可能会提供其默认的 404 页面(大概是 text/plain 页面)。

为了解决这个问题,我建议为您的 CSS (<link href="/static/...) 使用绝对路径或使用适当的 <base> 标签。