doter1995 2015-02-28 15:42
浏览 100
已采纳

如何使用Golang Gorilla Mux查找CSS文件

I'm using Go with Gorilla Mux.

This is my webserver.go file

package main

import (
  "log"
  "net/http"

  "github.com/gorilla/mux"
)

func HomeHandler(rw http.ResponseWriter, r *http.Request) {
  http.ServeFile(rw, r, "index.html")
}

func main() {
  r := mux.NewRouter()
  r.HandleFunc("/", HomeHandler)

  http.Handle("/", r)

  log.Println("Server running on :8080")
  err := http.ListenAndServe(":8080", r)
  if err != nil {
     log.Printf("Error: %s
", err.Error())
  }
}

In the same folder where the webserver.go file is located is the index.html file.

/ - here is the index.html

/css - All the CSS files

/images - All the images, resource files

I manage to load the index.html file using the above code but it doesn't seem to load the CSS files and images.

inside the index.html file I have.

<link rel="stylesheet" type="text/css" href="css/demo.css" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link rel="stylesheet" type="text/css" href="css/animate-custom.css" />

So it should find the css files or do I have to make sure that "Go" can find the css and image folder? How?

  • 写回答

1条回答 默认 最新

  • dpbfb7119 2015-02-28 16:01
    关注

    You can use http.FileServer for serving all the static files independently of gorilla/mux.

    package main
    
    import (
        "log"
        "net/http"
    
        "github.com/gorilla/mux"
    )
    
    func HomeHandler(rw http.ResponseWriter, r *http.Request) {
        http.ServeFile(rw, r, "index.html")
    }
    
    func main() {
        r := mux.NewRouter()
    
        cssHandler := http.FileServer(http.Dir("./css/"))
        imagesHandler := http.FileServer(http.Dir("./images/"))
    
        http.Handle("/css/", http.StripPrefix("/css/", cssHandler))
        http.Handle("/images/", http.StripPrefix("/images/", imagesHandler))
        r.HandleFunc("/", HomeHandler)
        http.Handle("/", r)
    
        log.Println("Server running on :8080")
        log.Fatal(http.ListenAndServe(":8080", nil))
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?