У меня есть иерархия вроде:
share/index.html находится в поддомене (http://www.share.foo.com вместо http://www.foo.com).
Я хотел бы получить доступ к myImage.png
из обоих доменов.
До сих пор я только мог найти один способ справиться с этим. Из index.html я ссылаюсь на изображение как:
img/myImage.png
и из /share/index.html Я ссылаюсь на изображение как:
http://www.foo.com/img/myImage.png
Это не кажется правильным, потому что я не должен быть таким явным с моим URL. Вероятно, это должно быть несколько относительно моей собственной структуры пути.
Мне интересно, какое здесь правильное решение? Должен ли share/index.html находиться на том же уровне, что и index.html? Как соглашения об именах работают на что-то подобное, если они оба должны быть index.html на одном уровне? Другие предложения?
Чтобы получить доступ к изображению из "index.html", вы можете использовать относительный путь, как вы сейчас используете:
img/myImage.png
Однако, когда вы находитесь в папке /share/, вам нужно вернуться в папку:
../img/myImage.png
Это, конечно, предполагает, что ваш каталог /share/находится в корневой папке html (public_html или любой другой, который может быть вызван вами)
Вы можете использовать
../img/myImage.png
для получения изображения в субдомене.
Вы можете использовать несколько ../
чтобы вернуться на любой уровень в иерархии
Например: ../../
вернет два уровня с текущего уровня.
Это можно сделать двумя способами.
Способ файловой системы
Если сервер находится в системе на основе Unix (Linux), создайте символическую ссылку в /share, которая указывает на /img.
Из оболочки:
~$ cd /docroot/share
~$ ln -s ../img img
Это приведет к тому, что все содержимое /img
появится под /share/img
.
Если у вас нет прямого доступа к оболочке вашего веб-узла, вы можете попробовать создать символическую ссылку в своей локальной копии своего каталога /share
и синхронизировать ее с сервером. Чтобы создать символическую ссылку, вам не нужно иметь копию места, где она указывает на вашем локальном компьютере.
Если вы работаете с окнами, NTFS также поддерживает символические ссылки, но я не могу сказать, как это будет синхронизироваться с веб-сервером.
Использование относительных путей ниже, чем ваш doc_root (../img/myImage.png
), чтобы указать на ваше изображение из вашего HTML-документа, в этом случае недопустимо. Он решил бы: http://www.share.foo.org/../img/myImage.png
<base>
tag way
Тег <base>
устанавливает базовый адрес, где искать связанный контент. Недостаток: он станет базой для al-связанного контента. (Таблицы стилей, изображения и ссылки). Таким образом, страница, связанная как <a href=about.hmtl>
укажет на <base>/about.html
.
<head>
<base href="http://www.foo.com/" target="_blank">
</head>
<body>
<img src="img/myImage.png">
</body>