Я использую следующее по всему проекту и до сих пор не заметил проблемы:
include '../titleBar.php';
require_once '../navBar.php';
require_once '../theDatabase.php'; // functions for the UI and DB access
require_once '../globals.php'; // variables and statics used throughout
Выше сказанное работало FINE в течение 3 недель.Причина, по которой ../ перед именами файлов заключается в следующем: приведенные выше операторы появляются в пользовательских подпапках в пользовательских файлах, таких как FOO_x.php , специфичных для данных, введенных пользователем, - только перечисленные выше включают иФайлы require_once содержат общий код, а общий код находится на один каталог выше подпапок в корневом каталоге веб-сайта.
Итак, я добавил этот новый бит кода, и он не тянет в таблице стилей:
include '../titleBar.php';
require_once '../navBar.php';
require_once '../theDatabase.php';
require_once '../globals.php';
<html>
<head>
<link rel="stylesheet" type="text/css" href="../globalStyles.css" />
Я изменил это на это, и таблица стилей в порядке в файл пользовательского FOO_x.php:
<link rel="stylesheet" type="text/css" href="globalStyles.css" />
ДЕРЖИТЕ В УМ - выше ссылка rel находится в файле FOO_x.php , который находится в подкаталоге корневого веб-сайта.И - файл 'globalStyles.css' находится ..... НЕ В подкаталоге, в котором находится FOO_x.php.
Файл 'globalStyles.css' находится на один уровень выше папки, содержащей FOO_x.php.
Так почему / как href = globalStyles.css может даже работать?Ну, ЭТО ДЕЛАЕТ.
Поскольку в течение последних 3 недель во втором файле 'navBar.php' в списке include / require в верхней части FOO_x.php содержалось следующее утверждение:
<base href='http://localhost/theSiteRootFolder/'></base>
Поэтому, когда я попробовал
<link rel="stylesheet" type="text/css" href="../globalStyles.css" />
и ни один из его стилей не появился на странице FOO_x.php, я переключил его на
<link rel="stylesheet" type="text/css" href="globalStyles.css" />
, и неожиданно появились стили.Затем я вспомнил «давным-давно», что поместил оператор «base» в navBar.php.
Далее я подумал: «Хорошо, если оператор rel rel использует оператор« base »из navBar.php -- затем require_once для файлов theDatabase.php и globals.php тоже НЕ НУЖНО ../ В конце концов, эти 2 файла появляются после «базовый» оператор в require_once navBar.php, точно так же, как оператор link rel ».Логично (для меня).
Итак, я изменил верхнюю часть файла FOO_x.php следующим образом:
include '../titleBar.php';
require_once '../navBar.php';
// these next 2 file 'requires' should work -- the navBar.php declared a 'base' to be the folder above this one
require_once 'theDatabase.php';
require_once 'globals.php';
Я понял, "как только navBar.php извлечен с его базовым оператором,так как очевидно, что ссылка rel настаивает на том, что globalStyles.css не может иметь ../ - тогда ни базы данных.php, ни globals.php не должны быть.* href = 'http://localhost/theSiteRootFolder относительный путь к корню.
И все же только ссылка rel' уважает 'или уделяет внимание выражению' base ', объявленному над ним в navBar.php.
Почему?Я не понимаю, почему, так как navBar.php устанавливает «базу», к которой разрешаются все относительные пути - почему тогда это НЕ работает:
<link rel="stylesheet" type="text/css" href="../globalStyles.css" />
но они работают FINE?
include '../titleBar.php';
require_once '../navBar.php';
// okay the 'base' was just established yet I still have to do this:
require_once '../theDatabase.php';
require_once '../globals.php';