2017-08-06 280 views
1

当前我在Golang站点中工作,因为前端使用的是go模板。为了网站的不同部分分开我创造了这个模板:如何在Golang模板中处理JS和CSS的路径

  1. 头:包含<head>标签和CSS的部分进口
  2. 标题:定义站点,标识等的导航栏这是仅限HTML
  3. 页脚:定义网站页脚的HTML。
  4. SomePage:定义body标签,这个模板调用Head,Header和Footer。这个文件可以是例如索引,登录等。

我在嵌套页脚模板之后添加了Javascript导入,但仍然在body标签内。作为例子,我说他们喜欢:

<script src="public/js/SomeJS.js"></script> 
<link href="public/css/SomeCSS.css" type="text/css" rel="stylesheet"/> 

在我定义public服务于那些静态文件我的项目的路线,这是工作相当不错。现在,我有一些项目的路线,让我们说:

router.GET("/",controllers.Index) 
router.GET("/login",controllers.Login) 

随着第一条路线,图书馆正在加载得很好。然后,路线为第二,我不能够加载它们,因为浏览器将尝试查找为文件:

http://myserver/login/public/css/someCSS.css instead of 
http://myserver/public/css/someCSS.css 

在这种情况下,我明白为什么它的加入login的URL。 所以,我的问题是,它通常如何处理?

现在我加入了域和文件夹的进口,例如:

<script src="MyDomain.com/public/js/SomeJS.js"></script> 

但我真的不想做这种方式,因为任何时候该域的变化我要编辑代码,它并不真正实用。另外,我不想在我创建的每个视图中添加库的导入。我有一些文件(CSS和JS),这些文件对于所有项目都很常见,我只想写一次。

谢谢!

回答

1

在路径的正上方加上/,它被称为relative pathdomain root

<script src="/public/js/SomeJS.js"></script> 
<link href="/public/css/SomeCSS.css" type="text/css" rel="stylesheet"/> 

没有/,它被称为relative pathcurrent domain directory。这是你现在的行为。

输出:

http://myserver/public/css/someCSS.css 
http://myserver/public/js/SomeJS.js