У меня есть сайт с 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'); ?>
...
спасибо, это помогло прояснить некоторые вещи для меня. Я пробовал/и ../, но не могу заставить его работать. Если я изменил «style.css» на «/root/style.css» в overview.php, я получаю стиль, но я не могу применить ту же идею к изображениям. Использование «/ root /», вероятно, является плохим выбором для этого примера, поскольку это не корень моего localhost. «/ Root», на который я ссылаюсь, находится в «var/www/root». Я предполагаю, что это то, что я не знаю об относительных/абсолютных путях, или что-то, что я не знаю о php, или мой Apache-сервер неправильно сконфигурирована или все вышеперечисленное. – eshriek
@eshriek, какой у вас веб-корень Apache? 'www' или' root'? –
apache web root is www – eshriek