2011-01-14 2 views
0

У меня есть сайт с index.php в корневой папке, изображения в /img и overview.php в /content. У меня есть файл sidebar.php, который включен как в index.php, так и в overview.php. Как я должен ссылаться на /img/image.gif, если я включаю ссылку в каждый файл?
Адрес image.gif изменяется относительно местоположения файла, который ссылается на него.
Использование /img/image.gif в sidebar.php будет работать в index.php, но это не удается для файла, расположенного по адресу /content/overview.php.
Единственное решение, которое я вижу, это либо включить отдельный sidebar.php в каждый подкаталог, либо включить каталог /img в каждый подкаталог.
Лучшее предложение, что я могу найти использовать <base> HTML тег, как предложено здесь:
Change relative link paths for included content in PHPВеб-разработка - относительные URL-адреса без дублирующих файлов

Однако в той же ссылке, SamGoody предполагает, что <base> тег is no longer properly supported in Internet Explorer, since version 7.

I Мне хотелось бы прочесть этот вопрос, прежде чем перейти к действию.

Спасибо.

EDIT: Я использую неправильный подход ниже с "../"

ПРИМЕР-

корень/index.php:

... 
<link rel="stylesheet" type="text/css" href="style.css" /> 
<title>title</title> 
</head> 
<body> 
<?php include('include/header.php'); ?> 
<?php include('include/menu.php'); ?> 
... 

корень/включить/header.php:

... 
<div id="header"> 
<span class="fl"><img src="img/dun1.png"/></span><span class="fr"><img src="img/dun2.png"/></span> 
... 

корень/содержание/обзор.php:

... 
<link rel="stylesheet" type="text/css" href="../style.css" media="screen" /> 
<title>Overview</title> 
</head> 
<body> 
<?php include('../include/header.php'); ?> 
<?php include('../include/menu.php'); ?> 
... 

ответ

3

Использование /img/image.gif в sidebar.php будет работать в index.php, но он не для файла, расположенного по адресу /content/overview.php

Но это не должен» т. Предыдущий / делает его абсолютным путем, который будет работать из любой точки сервера. Если это не сработает для вас, есть проблема где-то - в этом случае отправьте несколько примеров.

Если вы не планируете перемещать весь сайт в подкаталог в один день или перемещать изображения в сеть доставки контента (для обоих действий потребуется повторная запись адресов), вы можете безопасно использовать абсолютные URL-адреса.

+0

спасибо, это помогло прояснить некоторые вещи для меня. Я пробовал/и ../, но не могу заставить его работать. Если я изменил «style.css» на «/root/style.css» в overview.php, я получаю стиль, но я не могу применить ту же идею к изображениям. Использование «/ root /», вероятно, является плохим выбором для этого примера, поскольку это не корень моего localhost. «/ Root», на который я ссылаюсь, находится в «var/www/root». Я предполагаю, что это то, что я не знаю об относительных/абсолютных путях, или что-то, что я не знаю о php, или мой Apache-сервер неправильно сконфигурирована или все вышеперечисленное. – eshriek

+0

@eshriek, какой у вас веб-корень Apache? 'www' или' root'? –

+0

apache web root is www – eshriek

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

  • Нет связанных вопросов^_^