Мартини Маршруты с указанным параметром не удается загрузить статические файлы
Я написал свое первое приложение Go с Мартини. У меня есть маршрут с именованным параметром:
m := martini.Classic()
staticOptions := martini.StaticOptions{Prefix: "assets"}
m.Use(martini.Static("assets", staticOptions))
m.Get("/edit/:id", editHandler)
m.Run()
EditHandler отображает шаблон редактирования с таблицей стилей начальной загрузки и сценарием, которые находятся в assets/css
а также assets/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.css
а также edit/assets/js/bootstrap.min.js
, Как я могу удалить любой префикс маршрута?('Edit', 'show' и другие)
1 ответ
Ссылки в предоставленном вами фрагменте HTML являются относительными ссылками. Это означает, что когда браузер разрешает URL, он добавляет указанный путь к текущему хосту и пути, т.е. http://<hostname_and_port>/edit + assets/css/bootstrap.min.css
,
Вы можете использовать корневой путь вместо относительного пути, чтобы гарантировать, что когда браузер разрешает URL-адреса, он добавляет указанный путь к корню хоста, независимо от того, какой полный путь URL. Это делается путем добавления косой черты в начале вашего пути. В следующем примере я добавил косую черту к src
а также href
пути атрибутов.
<link rel="stylesheet" type="text/css" href="/assets/css/bootstrap.min.css">
<script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>