【问题标题】:Golang FileServer with custom css带有自定义 css 的 Golang FileServer
【发布时间】:2018-08-17 01:25:46
【问题描述】:

我曾考虑使用 Go 为我的家创建一个迷你文件服务器。通常http.FileServer 服务器文件和目录丑陋像这样:

是否可以将 CSS 添加到此站点?例如改变颜色。在此先感谢您的帮助!

【问题讨论】:

标签: go


【解决方案1】:

有一个 hacky 解决方案,利用您可以在 http.FileServer 完成工作后继续写信到 http.ResponseWriter 的事实。一般不推荐,但在这种情况下可能可以接受。

package main

import (
        "io"
        "log"
        "net/http"
)

const (
        link = `<link rel="stylesheet" href="/path/to/style.css">`
)

func main() {
        fs := http.FileServer(http.Dir("/tmp"))
        var handler http.HandlerFunc
        handler = func(w http.ResponseWriter, r *http.Request) {
                var (
                        url   = r.URL.Path
                        isDir = url[len(url)-1] == '/'
                )
                fs.ServeHTTP(w, r)
                if isDir {
                        io.WriteString(w, link)
                }
        }
        log.Fatal(http.ListenAndServe(":8080", handler))
}

【讨论】:

  • 肯定还有别的东西...为什么 go 作者会将目录作为 PRE 返回,并且在标题中包含内容类型?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 2017-08-21
相关资源
最近更新 更多