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>
标签。
我无法将文件放在静态文件夹中。我正在使用大猩猩 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>
标签。