我现在正在学习Go语言并尝试移植一些简单的WEB代码(Laravel 4)。 一切都很顺利,直到我尝试将Blade模板重现为文本模板。 我发现Go只能从名为" bootstrap" 的目录中加载我的CSS和JavaScript文件。
这是我尝试使用的目录树:
start-catalog bootstrap (link to bootstrap-3.3.1) bootstrap-3.3.1 css bootstrap.min.css js bootstrap.min.js jquery jquery (link to jquery-2.1.1.min.js) jsquery-2.1.1.min.js go_prg.go Here are my templates:base_js.tmpl
{{define "base_js"}} {{template "login_1"}} <script src = "/bootstrap/js/jquery"></script> <script src = "/bootstrap/js/bootstrap.min.js"></script> {{end}}
base_header.tmpl
{{define "base_header"}} <head> <title>PAGE TITLE</title> <meta name = "viewport" content = "width=device-width, initial-scale=1.0"> <meta charset="utf-8"> <link href = "/bootstrap/css/bootstrap.min.css" rel = "stylesheet"> </head> {{end}}
如果目录名称与&#34; bootstrap&#34;不同Go语言或Firefox无法从上面的模板加载文件: bootstrap.min.css , bootstrap.min.js , jquery 。
如果我不直接使用链接而是使用目录名称&#34; bootstrap-3.3.1&#34;比Go或Firefox无法加载
如果所有必需的文件都移动到&#34; bootstrap&#34;我得到了我期望的结果(与Laravel 4完全相同)。
为了启动go语言代码,使用了命令 go run go_prg.go 环境:Ubuntu 14.04,go-1.3.3,Firefox 31。
谁错了:去语言,火狐还是我?
任何帮助都将受到高度赞赏!
答案 0 :(得分:0)
描述的问题是由
引起的http.Handle("/bootstrap/", http.StripPrefix("/bootstrap/", http.FileServer(http.Dir("bootstrap"))))
在处理任何模板之前。它允许访问目录&#39; bootstrap&#39;仅
通过更改为修复了问题 http.Handle(,http.StripPrefix(,http.FileServer(http.Dir(&#34;。&#34;)))) 并添加到CSS和JavaScript文件的pathes。像这样
/引导/ JS / jquery的&#34;&GT;