如何正确配置Golang gorilla / pat路由器以提供静态资产文件夹?

时间:2015-12-05 11:42:07

标签: css go gorilla

我有两个html文件解析如下:

var LoginTemplate = template.Must(template.ParseFiles(
    "views/_base.html",
    "views/login.html",
))

并按原样执行:

func LoginFormHandler(w http.ResponseWriter, r *http.Request, ctx *models.Context) error {
    err := LoginTemplate.Execute(w, ctx)

    if err != nil {
        http.Error(w, err.Error(), 404)
    }
    return nil
}

以下是_base.html的内容:

<!DOCTYPE html>
<html lang="en">

  <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <!-- Meta, title, CSS, favicons, etc. -->
      <meta charset="utf-8">

      <title>{{ template "title" . }}</title>

      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      {{ template "styles" . }}
      {{ template "scripts" . }}
  </head>

  {{ template "content" . }}

</html>

上面指定的模板都在login.html中定义。例如,&#34; styles&#34;包装了我所有的CSS链接等。在我的主要功能中,我使用gorilla / pat路由器来处理对服务器的多个页面请求。另外,我想像这样提供我的静态资源文件夹:

router.PathPrefix("/assets/").Handler(http.StripPrefix("/assets/", http.FileServer(http.Dir("./assets/"))))

  if err := http.ListenAndServe(":"+settings.Server.Port, router); err != nil {
        panic(err)
  } 

但是,在构建并运行我的程序,然后导航到本地主机时,我发现没有任何CSS或js正在渲染。我的css和js文件夹在这棵树中:

  

ROOT /

     
    

资产/

         
      

CSS /
      js /

    
  

0 个答案:

没有答案