Программирую небольшую cms. Структуракаталогов выглядит следующим образом: корневой каталог, в котором находятся: - adm ( каталог, в котором лежат файлы администрирования); - main (каталог, в котором лежит таблица стилей и изображения); head.php (шапка сайта) left.php (левая сторона) index.php right.php (правая сторона) sub.php (нижняя часть сайта) страница выглядит следующим образом: head.php left.php СТРАНИЦА ВЫВОДА ИНФОРМАЦИИ (начальная index.php) right.php sub.php Страница вывода информации подключает страницы дизайна следующим образом: <?php require_once ("head.php"); require_once ("left.php"); ВЫВОД ИНФОРМАЦИИ require_once ("right.php"); require_once ("sub.php"); ?> Файл head.php включает в себя ссылку на таблицу стилей: <link rel='stylesheet' href='main/styles.css' type='text/css'> Однако, если файл вывода информации лежит в каталоге (например в adm), происходит сбой вывода таблицы стилей (так как неверно определяется корневой каталог) Вопрос такой: Как определить корневой каталог - как это возможно сделать? [/b]
href='/main/styles.css' И это только моё имхо, но я бы не стал собирать страничку из нескольких php-файлов. Лучше сделать простенький шаблонизатор, который будет выводить "дизайн сайта" и где-то в определённом месте(content-wrapper'е) выводить контент, будет это главная страница или контент, который отдал модуль...
Пропишите в конфиге полный путь к сайту, а потом в css FULL_PATH . "/css/myCss.css" Если я не ошибаюсь, require нужно использовать до первого вывода информации в браузер. Вместо него лучше использовать include_once.
Файл стиле загружает не сервер, а браузер клиента. Если style.css лежит например в корне сайта, то для страницы адреса site.ru/index.php адрес файла стилей может быть просто style.css, если адрес вида - site.ru/adm/index.php, то путь к файлу стилей должен быть ../style.css
Горбунов Олег, к чему это набивание постов? [vs], не проще ли / в начале адреса поставить и не заморачиваться?
Самый удобный и ИМХО верный вариант это прописывать base href - в теге <head />: Код (Text): <base href="http://сайт.ру/" /> И если ты решишь переместить свой движок в папку subfolder, например. тебе не придёться переписывать все пути, а просто поправить base href: Код (Text): <base href="http://сайт.ру/subfolder/" />
lexa, не знаю, сам иногда так делаю, но такой подход ассоциируется с кривостью и косостью... Не знаю почему... А ещё, по-моему бывают проблемы с таким подходом... Ток щас не вспомню какие, давно использовал...
Dagdamor, в каких ситуациях? [js]var a = document.createElement('A') a.setAttribute('href', 'lol') a.innerHTML = 'Отшлёпай меня!' document.body.appendChild(a)[/js] Нормально работает.
lexa Вроде поднимали уже этот вопрос в теме движка моего... http://php.ru/forum/viewtopic.php?p=41977#41977 Щас заброшу тамошний пример снова на сервер, проверь.
Надеюсь Шива (или кто там) покарает этих долба*бов из команды разработчиков IE. Тем не менее, проще один раз в яваскриптовом редиректи ссылку поменять (засунув в функцию), чем во всём дизайне.