说明
现在前端有着各种各样的包和工具,不再是当年一个 Bootstrap 或者 jQuary 就能秒杀所有需求的时代了。
这里只是单纯的拿 Bootstrap 来举例子,Bootstrap 下载地址:点我跳转
gorilla/mux 引用静态文件路径 / 路由
如果没有添加路由,直接去请求静态文件的时候会返回 404 的响应:
- https://localhost:3000/css/bootstrap.min.css
- https://localhost:3000/js/bootstrap.min.js
假设目前文件目录结构如下:
apps pkg resources public ├── css │ └── bootstrap.min.css └── js └── bootstrap.min.js
在 gorilla/mux 路由当中引用:
func RegisterWebRoutes(r *mux.Router) {
... 省略代码 ...
// 静态资源
r.PathPrefix("/css/").Handler(http.FileServer(http.Dir("./public")))
r.PathPrefix("/js/").Handler(http.FileServer(http.Dir("./public")))
}
PathPrefix() 匹配参数里 /css/ 前缀的 URI ,链式调用 Handler() 指定处理器为 http.FileServer()。 http.FileServer() 是文件目录处理器,参数 http.Dir(“./public”) 是指定在此目录下寻找文件。
此时再去访问就能获取正确的内容了。
Tips:渲染模板的调用 tmpl.Execute(w, articles),Execute() 在执行时会设置正确的 HTML 标头。而解析静态文件所用到的 http.FileServer() 内部也会根据文件后缀设置正确的标头。所以标头这块不需要我们干预。
评论前必须登录!
注册