Ссылка на таблицу стилей CSS из неизвестного более высокого каталога - PullRequest
1 голос
/ 01 июля 2011

Я сейчас нахожусь в процессе создания моего первого сайта на основе PHP. Весь сайт находится в главном каталоге: example.com

Я хочу, чтобы пользователи находили разные страницы моего сайта, переходя по таким ссылкам, как example.com/page, example.com/another_page, example.com/directory/some_page и т. Д. И т. Д.

Для этого я создаю эти каталоги и добавляю следующий php-код в index.php:

<?php
include("/home/user/domains/example.com/public_html/index.php");
?>

Это отлично работает, страница включена. Проблема в том, что таблицы стилей нет. Работает только в главной папке. Я попробовал оба этих HTML-фрагмента:

<link href="Stylesheet.css" rel="stylesheet" type="text/css" />
<link href="/home/user/domains/example.com/public_html/Stylesheet.css" rel="stylesheet" type="text/css" />

Но они оба не работают.

Как это работает в HTML, как получить доступ к домашнему каталогу?

Заранее спасибо

Ответы [ 3 ]

3 голосов
/ 01 июля 2011

Файл css загружается и включается на стороне клиента , в отличие от оператора php include, который включает файл на стороне сервера .

Путь для CSS должен "иметь смысл" с точки зрения клиентов и, вероятно, указываться относительно каталога public_html.То есть, если он находится непосредственно в каталоге public_html, строка должна выглядеть следующим образом:

<link href="/Stylesheet.css" rel="stylesheet" type="text/css" />
2 голосов
/ 01 июля 2011

Браузер не может видеть все каталоги в вашем public_html.Веб-серверы предоставляют браузеру корень документа.Вы должны ссылаться на него только с /:

<link href="/Stylesheet.css" rel="stylesheet" type="text/css" />

Также рассмотрите возможность использования mod_rewrite вместо создания каталогов и файлов PHP везде.Я думаю, вы найдете это гораздо более удобным для обслуживания.

1 голос
/ 01 июля 2011

Это ваш абсолютный путь для доступа на стороне сервера:

<?php
include("/home/user/domains/example.com/public_html/myDirectory/Stylesheet.css");
?>

Однако , вам нужен доступ с вашего веб-сервера для этого.Абсолютный путь к веб-серверу выглядит следующим образом, где / - это корень вашего веб-сервера, а myDirectory - это местоположение каталога вне корня:

<link href="/myDirectory/Stylesheet.css" rel="stylesheet" type="text/css" />
...