2017-08-06 99 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