Go:使用子目录提供http目录

时间:2014-07-18 16:19:05

标签: linux go filesystems

我有文件服务器层次结构

/tmp/core/css/*.css 
/tmp/core/js/*.js 
/tmp/apps/someapp

我有两个静态文件位置/ tmp / core和/ tmp / apps。 以下代码有效,但允许在没有子目录的情况下提供目录/核心。 要为/ tmp / core /中的每个子目录提供服务,我需要为此指定http.Handle。

使用http.Handle的一个定义是否可以更容易地指定它?

http.Handle("/", http.FileServer(http.Dir("/tmp/apps/someapp"))) 
http.Handle("/core/", http.StripPrefix("/core/", http.FileServer(http.Dir("/tmp/static core/"))))

1 个答案:

答案 0 :(得分:3)

这个简单的代码段提供了我的go文件夹及其中的所有内容。

package main

import (
    "log"
    "net/http"
)

func main() {
    http.ListenAndServe(":8080", http.FileServer(http.Dir("/Users/sergiotapia/go")))
}

访问localhost:8080

这将在go文件夹及其中的每个子目录和文件中提供我的文件。除非我误解你的问题。

尝试运行上面的代码段并设置驱动器上文件夹的路径。