我的静态文件不能加载

anc_ · 2013-06-21 10:58:59 · 3939 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2013-06-21 10:58:59 的主题,其中的信息可能已经有所发展或是发生改变。

好吧, 连图片都发不了

// server
package main

import (
    "html/template"
    "io/ioutil"
    "log"
    "net/http"
    "path"
    "runtime"
)

var templates = make(map[string]*template.Template)

func init() {
    runtime.GOMAXPROCS(runtime.NumCPU())
    tpls, err := ioutil.ReadDir("../template")
    checkErr(err)
    for _, tpl := range tpls {
        tplName := tpl.Name()
        if ext := path.Ext(tplName); ext != ".htm" {
            continue
        }
        tplPath := "../template/" + tplName
        log.Println("loading template:", tplPath)
        t := template.Must(template.ParseFiles(tplPath))
        templates[tplName] = t
    }
}

func main() {
    http.Handle("/static/", http.FileServer(http.Dir(".")))
    mux := http.NewServeMux()
    for url, handle := range handlers {
        mux.HandleFunc(url, handle)
    }
    http.Handle("/", mux)
    log.Fatal(http.ListenAndServe(":8080", mux))
}

代码是这样的

E:/blog
----server
    ----server.go
    ----other.go
----static
----template 

结构是这样的, 但是我试了好几次都没加载出来静态文件, 是哪里写的不对不


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

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

3939 次点击  
加入收藏 微博
3 回复  |  直到 2013-06-22 15:30:06
polaris
polaris · #1 · 12年之前

试试:http.Handle("/static/", http.FileServer(http.Dir(ROOT)))

其中 ROOT 是项目根目录,也就是 src 目录所在的目录

anc_
anc_ · #2 · 12年之前

一直以为路径问题呢, 结果刚刚打开 firebug, 发现提示

http://localhost:8080/static/css/pt_lib_macro.css 未载入,因为它的MIME类型 "text/html" 不是 "text/css"

话说 mime 这包没有看懂, 不知道怎么设置mime.types @polaris

polaris
polaris · #3 · 12年之前

这个包暂时还没有研究过。但理论上来说,这个地方不需要用mime包啊

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