goalng 如何利用mux写一个文件服务器

hz_wujun · 2013-11-27 08:25:41 · 6064 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2013-11-27 08:25:41 的主题,其中的信息可能已经有所发展或是发生改变。

我用net/http写了一个文件服务器,代码很简单,可以运行,代码如下:

package main

import "net/http"

func main(){
    http.Handle("/",  http.FileServer(http.Dir("../template")))
    http.ListenAndServe(":8888", nil)
}

然后在template目录下的任何文件和目录在ie中都可以访问

然后我用net/http+github.com/gorilla/mux改写了上述代码,如下:

package main

import "net/http"
import "github.com/gorilla/mux"

func main(){
    r := mux.NewRouter()
    r.Handle("/", http.FileServer(http.Dir("../template")))
    http.ListenAndServe(":8888", nil)
}

然后在ie浏览器中访问template目录下的文件和目录,就不行了,请高手看看,这是为何?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

6064 次点击  
加入收藏 微博
3 回复  |  直到 2017-03-23 07:56:28
polaris
polaris · #1 · 11年之前

这种的还是别交给 mux 处理了。

另外,mux 定义路由之后,需要加一句:http.Handle("/", r)

ZhangTingkuo
ZhangTingkuo · #2 · 8年之前
    muxRouter := mux.NewRouter()
    muxRouter.HandleFunc("/", router.IndexHandleFunc)

        serveMux := http.DefaultServeMux
    serveMux.Handle("/", muxRouter)
    serveMux.HandleFunc("/statics/", router.StaticsHandleFunc)

        httpServer := http.Server{
        Addr:           ":12345",
        Handler:        serveMux,
        ReadTimeout:    10 * time.Second,
        WriteTimeout:   10 * time.Second,
        MaxHeaderBytes: 1 << 20,
    }
        httpServer.ListenAndServe()
shamibiji
shamibiji · #3 · 8年之前

linux下不能运行,是什么原因呢

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传