Golang Templates如何处理JS和CSS的路径
How to handle paths of JS and CSS in Golang Templates
目前在 Golang 站点工作,作为前端,我正在使用 go 模板。为了分隔网站的不同部分,我创建了这个模板:
- Head:包含
<head>
标签,以及一些 css 的导入
- header:定义站点的navbar,logo等,只有HTML
- 页脚:定义站点页脚的HTML。
- SomePage:定义body标签,本模板调用Head、Header和footer。该文件可以是例如索引、登录等。
我在嵌套页脚模板后添加了 Javascript 导入,但仍在正文标签内。例如,我将它们添加为:
<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)对所有项目都是通用的,我只想写一次。
谢谢!
在路径的存在中添加/
,从domain root
调用relative path
。
<script src="/public/js/SomeJS.js"></script>
<link href="/public/css/SomeCSS.css" type="text/css" rel="stylesheet"/>
没有/
,从current domain directory
调用为relative path
。这就是你现在的行为。
输出:
http://myserver/public/css/someCSS.css
http://myserver/public/js/SomeJS.js
目前在 Golang 站点工作,作为前端,我正在使用 go 模板。为了分隔网站的不同部分,我创建了这个模板:
- Head:包含
<head>
标签,以及一些 css 的导入
- header:定义站点的navbar,logo等,只有HTML
- 页脚:定义站点页脚的HTML。
- SomePage:定义body标签,本模板调用Head、Header和footer。该文件可以是例如索引、登录等。
我在嵌套页脚模板后添加了 Javascript 导入,但仍在正文标签内。例如,我将它们添加为:
<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)对所有项目都是通用的,我只想写一次。
谢谢!
在路径的存在中添加/
,从domain root
调用relative path
。
<script src="/public/js/SomeJS.js"></script>
<link href="/public/css/SomeCSS.css" type="text/css" rel="stylesheet"/>
没有/
,从current domain directory
调用为relative path
。这就是你现在的行为。
输出:
http://myserver/public/css/someCSS.css
http://myserver/public/js/SomeJS.js