Я сбит с толку этим, и я надеюсь, что кто-то может указать на высоком уровне, где мое мышление неверно.
У меня есть простая программа PHP
- index.php includes a file /common/header.php
- header.php links to the stylesheet.
Вопрос 1, который, я думаю, сбил с толку других людей, но я не видел ответа, который бы ответил на вопрос напрямую.
Если я помещу таблицу стилей в корневую папку (в том же месте, что и index.php), то я могу ссылаться на файл без пути
<link rel="stylesheet" type="text/css" href= "style.css" />
Дело в том, что таблица стилей относится к index.php, а не к header.php, когда он включен в index.php. Это правильно?
Выпуск 2 действительно странный. Когда я помещаю файл в папку, я могу ссылаться на него как
<link rel="stylesheet" type="text/css" href= "/common/style.css" />
или же
<link rel="stylesheet" type="text/css" href= "common/style.css" />
или же
<link rel="stylesheet" type="text/css" href= "styles/style.css" />
и так далее.
НО это не получится, если я назову папку css. Кто-нибудь?
Есть еще один момент, который может иметь значение. Я использую WAMP, и этот сайт настроен на виртуальный хост.
То есть хост настроен в файле hosts в Windows / System 32 и в файле Apache httpd.vhosts.conf.
Это означает, что файл index.php находится в корневом каталоге, а /common/style.css функционально эквивалентен файлу common / style.css.
Любые советы для понимания этого будет высоко ценится. Благодарю.
Прежде всего, относительная ссылка на путь в html полностью отличается от той, что есть в PHP.
в PHP ваш корень документа может быть / var / www / example /, а в html это может быть http://www.example.com/
клиентский браузер, который читает HTML, так как не знает, где находится ваш html-файл, в отличие от сценария ввода (в данном случае: http://www.example.com/index.php)
Так что, если я просто ссылаюсь на
<link rel="stylesheet" type="text/css" href= "/css/style.css" />
и поместите таблицу стилей в /var/www/example/css/style.css, тогда не имеет значения, где находится header.php и где он отображается, если он связан с сценарием ввода. (index.php в этом случае)
Выпуск 1:
Ваша проблема не в PHP, а в HTML. CSS применяется браузером после получения исходного кода HTML. Поэтому, когда ваш index.php является сценарием, который выводит контент, все ресурсы, на которые вы ссылаетесь в html, будут относиться к пути, по которому этот файл находится.
Выпуск 2:
разница между
<link rel="stylesheet" type="text/css" href= "/common/style.css" />
а также <link rel="stylesheet" type="text/css" href= "common/style.css" />
является то, что версия 1 будет работать только до тех пор, пока / common находится в корне вашего веб-сервера. Это абсолютный путь (начиная с /), в то время как версия 2 является относительной и будет работать, если ваш файл был /xyz/common/style.css.
Я понятия не имею, почему это не должно работать с именем CSS, хотя. Возможно, вам следует повторить это.
Спасибо всем. Это было быстро.
Подводя итог, можно сказать, проблема включения, которая, как я подозреваю, есть у многих людей. Путь к таблице стилей должен быть относительно index.php, а не header.php.
Другая проблема, которую я решил. Некоторые файлы были случайно скопированы в C: / wamp / www, то есть в обычный корень. Я убрал все это, и странная проблема отказа играть с папкой call / css исчезла. Так что это двойная проблема, начинающаяся с: 1. беспорядок и 2. что-то, что связано с тем, что виртуальный хост не работает должным образом. По крайней мере, туман поднялся. Спасибо вам всем.
А для ДаркМукке «Кто-нибудь?» Фатик Это социальная тонкость, которую новички, скорее всего, используют для выражения уважения, когда они понимают, что проблема связана с их собственным туманом так же, как с чем-либо техническим. Или в разговоре о чудаках, новичок надевает шляпу любому, кто даст им 5 минут, чтобы привести их в порядок.
Спасибо всем.