在Golang中访问静态文件

时间:2016-02-25 22:47:32

标签: html css go static-files fileserver


我无法链接到Go服务器中某个服务页面中的外部CSS文件。

这是我的项目结构,有一些评论。我的$GOPATH是顶级目录。请注意,有一个“主”可执行文件是通过使用此顶级目录中的 “$ go build main” 命令构建的。它本质上编译了src/main目录中的文件。然后我直接通过这个可执行文件(“$。\ main”)运行程序。

.
├── bin
├── main <-- Executable, not directory (built via "go build main")
├── pkg
│   └── darwin_amd64
├── src
│   ├── github.com
│   └── main <---- My Go files are here!
├── style
│   └── style.css
└── templates
    └── developers.html

我正在尝试将style.css文件用作developers.html模板中的外部链接样式文件,最终由Go解析和合并。下面列出了简化版本的文件。

developers.html

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style/style.css">
    </head>
    <body>
        ...
    </body>
</html>

server.go

package main

import (
    "log"
    "net/http"
)

func main() {
    styleHandler := http.FileServer(http.Dir("style"))
    http.Handle("/style/", http.StripPrefix("/style/", styleHandler))

    // router handles other non-static pages, 
    // and is defined in another .go source file. These are working.
    router := MainRouter()
    log.Fatal(http.ListenAndServe(":8080", router))
}

我确定问题是我如何对待相对路径,但我无法弄明白。谢谢你的帮助。

0 个答案:

没有答案