Как создать корневые ссылки на статическом сайте?
При создании статического HTML-сайта вы можете установить базовый url таким образом <base url="http://localhost:8888/mysite" />
. Предположительно, когда вы вставляете, скажем, изображение, вы можете сделать это из этого базового url как <img src="/img/logo.png" />
, что эквивалентно <img src="http://localhost:8888/mysite/img/logo.png" />
Моя проблема в том, что эти относительные ссылки не работают, когда я перемещаю сайт, что является болью, потому что я пытаюсь поделиться им с кем-то в Dropbox. Я думал, что могу просто привязать базовый url к <base url="http://dl.dropbox.com/u/xxxxxxxx/mysite" />
, но ссылки на изображения здесь: <img src="http://dl.dropbox.com/img/logo.png" />
вместо полного базового URL, который я установил в голове.
Почему это?
Ответы
Ответ 1
Потеряйте ведущий /
, чтобы сделать его относительным URL:
<img src="img/logo.png" />
Существует 3 типа URL:
-
Полностью квалифицированный, например. http://example.org/path/to/file
-
Абсолютный, например. /path/to/file
(предполагая, что ссылка происходит с любой страницы в домене example.org)
-
Относительный, например. path/to/file
(предполагая, что ссылка происходит из корневой папки (/
) "или имеется базовый URL http://example.org/
)
или to/file
(предполагая, что ссылка происходит из папки "путь" или базовый URL-адрес http://example.org/path/
)
Ответ 2
Я знаю, что я немного опаздываю в игру на этом, но вы действительно должны использовать теги активов Rails вместо необработанного HTML.
Например, вместо использования:
<img src="/img/logo.png" />
Вы должны использовать:
<%= image_tag 'logo.png' %>
Предполагая, что:
- Вы используете файлы .erb для исходных страниц
- Вы установили путь ресурса изображения к
/img/
в файле config.rb
В качестве альтернативы вы можете ссылаться на CSS с помощью:
<%= stylesheet_link_tag 'file.css' %>
Файлы Javascript могут быть включены:
<%= javascript_include_tag 'file.js' %>
Так как Middleman позволяет вам контролировать, ссылаются ли на ресурсы относительно (раскомментируя некоторые строки в config.rb), использование тегов активов Rails имеет гораздо больше смысла, чем статические HTML-версии. Я настоятельно рекомендую переключиться, если вы еще этого не сделали. Если у вас есть дополнительные вопросы об этих тегах или синтаксисе ERB, не стесняйтесь спрашивать здесь!