Веб-разработка - относительные URL-адреса без дублирования файлов - PullRequest
0 голосов
/ 14 января 2011

У меня есть сайт с 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, как предлагается здесь:
Изменение относительных путей ссылок для включаемого содержимого в PHP

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

Я хотел бы получить некоторое представление по этому вопросу, прежде чем приступить к курсудействие.

Спасибо.

РЕДАКТИРОВАТЬ: я использую неправильный подход ниже с "../"

Пример-

root / 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'); ?>
...  

root /include / header.php:

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

root / content / Overview.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'); ?>
...

1 Ответ

3 голосов
/ 14 января 2011

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

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

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

...