| |
|
|
| | Проблема в прописывании путей к файлам в меню.
Уже окончательно запутался, как нужно прописывать, помогите разобраться.
Структура сайта такова, что каждый раздел лежит в своей папке, в корне только файл index.php и папки, есть так же служебная папка util, где лежит шапка, подвал и др. общие элементы для сайта. Меню расположено в папке menu. Соответственно в меню пишу:
<a href="news/index.php">Новости</a>
|
Если я нахожусь на главной странице, то все работает как надо, а вот если к примеру перешел на страницу новости, а с нее хочу перейти в раздел статьи то адрес уже выходит неверный, так как надо указывать вот так:
<a href="../articles/index.php">Статьи</a>
|
Вот только теперь с главной путь неверный, вообщем объясните как надо делать. Пояснения жедательно сопровождать кодом, так лучше воспринимается. | |
| |
|
|
| |
|
|
| |
для: Dizels
(09.01.2008 в 19:47)
| | | Ну во-первых, так как вы работает с php, отдельных страниц у вас должно быть не много. Чем вас абсолютные ссылки не милы?
Если с относительными:
можно например создать переменную
$url
если вы находитесь на странице, которая лежит в папке articles, то
$url = ../articles/
Если на главной - $url = news
Подставляете $url в ссылки.. Если я правильно вас понял, то можно так, но мне кажется, что можно себе позволить абсолютные ссылки. | |
| |
|
|
| |
|
|
| |
для: devil943
(09.01.2008 в 20:37)
| | | насчет абсолютных - я Вас не понял :) Они у меня и так абсолютные, проблема как раз в том, что путь из каждой папки разный, а меню лежит в одном файле, т.е. подключая с главной страницы я просто захожу в нужную мне папку. А подключая из раздела - я должен сначала выйти в корень, а уже потом зайти в нужную папку.
По поводу относительной - мне кажется, что должен быть способ красивее.
Вообщем нужны еще варианты :) | |
| |
|
|
| |
|
|
| |
для: Dizels
(09.01.2008 в 21:25)
| | | Они у вас относительные, относительно корня сайта (http://www.site.ru/) - вот относительно этого у Вас и ссылки. А абсолютные - это http://www.site.ru/index.php.
А тега <base href="..."> у вас случайно нет? | |
| |
|
|
| |
|
|
| |
для: Dizels
(09.01.2008 в 21:25)
| | | или так
<a href="http://<?=$_SERVER['HTTP_HOST']?>/news/index.php">Новости</a>
<a href="http://<?=$_SERVER['HTTP_HOST']?>/articles/index.php">Статьи</a>
|
чем не вариант? | |
| |
|
|
| |
|
|
| |
для: kukuikar
(09.01.2008 в 21:33)
| | |
<a href="http://<?=$_SERVER['HTTP_HOST']?>/news/index.php">Новости</a>
|
Это можно записать немножко проще:
<a href="/news/index.php">Новости</a>
<a href="/articles/index.php">Статьи</a>
|
Это и будет абсолютный путь. | |
| |
|
|
| |
|
|
| |
для: Thrasher
(10.01.2008 в 10:02)
| | | Тега base - нет.
по поводу записи:
<a href="/news/index.php">Новости</a>
<a href="/articles/index.php">Статьи</a>
|
Вот вы попробуйте при таком варианте перейти на статьи, а с них на новости - на новости уже не перейдете.
Использовать <?=$_SERVER['HTTP_HOST']?> - не очень то хочется, да и некрасиво, уверен, что есть более правильное решение проблемы.
У меня раньше было все реализовано примерно так:
был файл config.php:
<?
$_PATH['project']=$_SERVER['DOCUMENT_ROOT']; //это - корневой каталог сайта
$_PATH['img']=$_PATH['project']."/img";
$_PATH['util']=$_PATH['project']."/util";
$_PATH['news']=$_PATH['project']."/news";
$_PATH['articles']=$_PATH['project']."/_articles";
$_URL['project']="http://www.домен.ru";
$_URL['img']=$_URL['project']."/img";
$_URL['util']=$_URL['project']."/util";
$_URL['news']=$_URL['project']."/news";
$_URL['article']=$_URL['project']."/article";
?>
|
И я просто его подключал во все файлы, но после переезда на новый сервак - так работать перестало, в экстенном порядке, мне пока пришлось все заменить на вот такое:
require_once $_SERVER['DOCUMENT_ROOT'] . '/util/top.php';
|
Но, во-первых, при запуске на локале(через денвер) скрипт выдает ошибку, приходится приписывать к пути папка с сайтом/util/top.php, а во-вторых, хотелось бы реализовать все чем-то вроде первого метода, которым я пользовался(его мне подсказали здесь на форуме).
Так что вопрос остался в силе. | |
| |
|
|
| |
|
|
| |
для: Dizels
(10.01.2008 в 10:31)
| | | что вам не дает использовать абсолютные пути? | |
| |
|
|
| |
|
|
| |
для: Dizels
(10.01.2008 в 10:31)
| | |
<a href="/news/index.php">Новости</a>
<a href="/articles/index.php">Статьи</a>
|
У меня такая запись на всех сайтах. Это абсолютный путь и он не зависит от того, на какой странице находится пользователь. Эта запись полностью эквивалентна такой:
<a href="http://site.ru/news/index.php">Новости</a>
<a href="http://site.ru/articles/index.php">Статьи</a>
|
| |
| |
|
|
| |
|
|
| |
для: Thrasher
(10.01.2008 в 10:52)
| | | Вот сейчас у меня сайт только на моем компе(запускаю его благодаря денверу), так вот, если в меню указывать путь вот так:
<a href="/news/index.php">Новости</a>
<a href="/articles/index.php">Статьи</a>
|
То при нажатии на ссылку новости отправляет на страницу:
http://localhost/news/index.php
|
| |
| |
|
|
| |
|
|
| |
для: Dizels
(10.01.2008 в 11:15)
| | | тема все еще актуальна.
Особенно хотелось бы услышать cheops'a. | |
| |
|
|
| |
|
|
| |
для: Dizels
(10.01.2008 в 13:24)
| | | Не нравиться предыдущий ответ используйте например так...
<?
$url='http://site.ru';
echo "<a href='$url/news/index.php'>Новости</a>";
echo "<a href='$url/articles/index.php'>Статьи</a>";
|
| |
| |
|
|