【问题标题】:How to handle paths of JS and CSS in Golang Templates如何在 Golang 模板中处理 JS 和 CSS 的路径
【发布时间】:2018-01-13 15:01:03
【问题描述】:

目前在 Golang 站点中工作,作为前端,我使用的是 go 模板。为了分离网站的不同部分,我创建了这个模板:

  1. 头部:包含<head>标签,以及一些css的导入
  2. Header:定义网站的导航栏、logo等。它只是HTML
  3. 页脚:定义网站页脚的 HTML。
  4. 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),我只想写一次。

谢谢!

【问题讨论】:

    标签: go-templates


    【解决方案1】:

    在路径中添加/,从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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      • 2018-03-30
      • 2012-08-05
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      相关资源
      最近更新 更多