Относительные и абсолютные адреса - PullRequest
1 голос
/ 25 августа 2011

Мой вопрос касается относительных и абсолютных адресов.

За эти годы я создал фреймворк, на котором основаны все мои php-сайты.

Каждая страница загружается в файл «index.php» верхнего уровня. Это круто, потому что я никогда не борюсь с путями к ресурсам. На каждый отдельный ресурс, на каждом уровне системы ссылаются из файла индекса верхнего уровня, поэтому пути всегда одинаковы:

т.е. (img src = "images / sprites / xxxxx.jpg") с каждой страницы в системе.

Но теперь я все испортил, введя mod_rewrite. Перезапись мода, кажется, запутала систему путей, которую я использовал. Настало время обновить пути. Стили и изображения больше не загружаются.

Как мне это исправить? Правда ли, что относительные пути загружаются быстрее, чем абсолютные? Разве в PHP нет способа найти корень файловой системы вашего сервера, присвоить его переменной $ var, а затем добавить этот $ var к путям к изображениям? Это быстрее, чем просто ссылаться на мои изображения и таблицы стилей как "http://site.com/images/xxxx.jpg"?

У меня есть много, чтобы учиться сейчас. Любой вклад, пожалуйста

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Как мне это исправить?

Используйте URI, которые начинаются с /, чтобы они относились к корню текущего домена (сохраняя тот же протокол и порт).

Правда ли, что относительные пути загружаются быстрее, чем абсолютные?

Они короче, поэтому они экономят несколько байтов, так что технически - да. Это не значительная экономия.

Разве в PHP нет способа найти корень файловой системы вашего сервера, присвоить его переменной $ var, а затем добавить этот $ var к путям к изображениям?

Да, но описанная выше техника проще.

0 голосов
/ 25 августа 2011

$_SERVER["DOCUMENT_ROOT"] получит то, что вы просили:

<?php $root = $_SERVER["DOCUMENT_ROOT"]; ?>

Но я согласен с другими авторами, что корневые относительные (начальная косая черта) пути - более простое решение.

0 голосов
/ 25 августа 2011

Просто добавьте / перед каталогом images

img src="/images/sprites/xxxxx.jpg"

, это то же самое, что:

http://site.com/images/sprites/xxxxx.jpg
...