2013-09-27 1 views
1

Мой проект реж структураКак я могу сделать все пути относительно корня документа?

/admin 
    L index.php 
/includes 
    L scripts.php 
    L common.php 
/css 
/js 
index.php 
header.php 
footer.php 
... 

В index.php я включаю /includes/scripts.php, который содержит ссылки на различные CSS файлы в/CSS реж как например:

<link rel="stylesheet" type="text/css" href="css/jquery.alerts.css" /> 
<link rel="stylesheet" type="text/css" href="css/style.css" /> 

и т.д .. .

Все работает нормально, когда включено /includes/scripts.php из корня документа, но если я включаю scripts.php из другого каталога, то есть/admin, то пути больше недействительны и включение всех файлов ссылка не удалась. Как я могу сделать все пути относительно корня документа независимо от того, где я их вызываю из моего проекта?

+1

Просто используйте локальные абсолютные пути, например '/ Администратор/index.php'. Все это основано на корне документа документа сайта. –

ответ

2

использование <base href="/"/>

проверить этот вопрос для получения дополнительной информации: Is it recommended to use the base html tag

или вручную переработать ваши URLS по сравнению с корнем, как /css/style.css

+2

w3schools - неправильный и вводящий в заблуждение сайт. Вы не должны использовать его как ссылку для любого языка. Для PHP существует [PHP Manual] (http://php.net), для JavaScript есть [Mozilla Developer Network (или MDN)] (https://developer.mozilla.org/). См. Http://w3fools.com, чтобы понять, почему вы никогда не должны использовать w3schools. –

+0

спасибо! Я обновил свой ответ – adamziel

+0

Отлично! Есть виртуальные интернет-точки! –

2
<link rel="stylesheet" type="text/css" href="/css/jquery.alerts.css" /> 

добавить косую черту перед URL-адрес для чтения из сети корень. Имейте в виду, что существует разница между корневым корнем и веб-корнем. корень документа может решить что-то вроде /home/sites/www/yourdomain.com/

Ответ Адама может быть более точным в соответствии с вашими потребностями, но в целом, почему вы пишете свои пути, чтобы не относиться к корневому веб-сайту, если это ваша цель? Кажется, что ваш вопрос является более фундаментальной организационной ошибки, которые могут быть решены с использованием стандартной практики по работе вокруг

В качестве альтернативы, вы можете определить переменную базового URL-адрес и использовать его, чтобы написать эти ссылки:

<?php 
$base_url = 'http://www.yoursite.com/'; 
// $base_url = 'http://dev.yoursite.com/'; if you work locally and have defined this in your vhosts file 
?> 

<link rel="stylesheet" type="text/css" href="<?php echo $base_url; ?>css/jquery.alerts.css" /> 
+0

Я уже пробовал ваше предложение, и он терпит неудачу. Пути к файлам css недействительны. – bikey77

+0

Единственный способ, с помощью которого произошел сбой, это то, что структура структуры проекта, которую вы указали, фактически не находится в корневом каталоге веб-сайта. Или, если что-то еще переписывает вашу базу, как сказал адам. - что вы получаете, когда делаете что-то вроде 'print_r ($ _ SERVER ['DOCUMENT_ROOT'])' –

+0

Если вы спрашиваете, сидит ли мой проект в корне сервера, то нет, он находится внутри собственного каталога по имени проекта. Я запускаю XAMPP, и у меня есть несколько проектов, каждый в своем собственном каталоге внутри htdocs. Надеюсь, это станет более ясным и конкретным. – bikey77

Смежные вопросы