2015-10-25 53 views
3

我用Martini編寫了我的第一個Go應用程序。我有一個命名參數路線:帶有命名參數的Martini路線無法加載靜態文件

m := martini.Classic() 

staticOptions := martini.StaticOptions{Prefix: "assets"} 
m.Use(martini.Static("assets", staticOptions)) 

m.Get("/edit/:id", editHandler) 
m.Run() 

的editHandler呈現自舉樣式表和腳本,因此處於assets/cssassets/js文件夾編輯模板。

<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.min.css"> 
<script type="text/javascript" src="assets/js/bootstrap.min.js"></script> 

但是,當我在我的瀏覽器我的靜態文件不加載打開編輯頁面,因爲瀏覽器發出請求edit/assets/css/bootstrap.min.cssedit/assets/js/bootstrap.min.js。 如何去除任何路由前綴('edit','show'等)

回答

2

您提供的html代碼段中的鏈接是相對鏈接。這意味着當瀏覽器解析URL時,它將給定路徑附加到當前主機和路徑,即http://<hostname_and_port>/edit + assets/css/bootstrap.min.css

您可以使用根路徑而不是相對路徑來確保當瀏覽器解析urls時,它會將給定的路徑附加到主機的根目錄,而不管完整的URL路徑是什麼。這是通過在你的路徑開始處放置一個斜槓來完成的。在下面的示例中,我添加了一個斜槓和href屬性路徑。

<link rel="stylesheet" type="text/css" href="/assets/css/bootstrap.min.css"> 
<script type="text/javascript" src="/assets/js/bootstrap.min.js"></script> 
+0

賓果!你絕對正確,謝謝! –

+0

請考慮點贊! –

相關問題