Как включить из нескольких каталогов
Мой файл header.php содержит.css для моего проекта. Я сделал новую страницу, на которой есть несколько каталогов. (Root / mods / people / employee / addemployee.php)
Если я положил файл в корень, CSS работает нормально. Если я положу его туда, где я хочу, CSS не появится.
Это можно обойти? Я пытаюсь держать вещи организованными.
Добавить код сотрудника:
<?php include("../../../includes/layouts/header.php"); ?>
<div id="main">
<div id="subnavigation">
<?php
include('../../../mods/main_menu/index.html');
?>
</div>
<div id="page">
<p>Add Employee!</p>
</div>
</div>
</div>
<?php include("../../../includes/layouts/footer.php"); ?>
Код Header.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Company H&S Site </title>
<link href="stylesheets/public.css" media="all" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<h1>H&S Site </h1>
</div>
1 ответ
Проблема в том, что эти головные боли вызывают ../../../
вызовы относительного пути. Вместо этого я рекомендую установить базовый путь по умолчанию и больше никогда не беспокоиться о таких вещах:
<?php
$BASE_PATH = '/the/path/to/the/codebase/';
include_once($BASE_PATH . "includes/layouts/header.php");
?>
<div id="main">
<div id="subnavigation">
<?php
include_once($BASE_PATH . "mods/main_menu/index.html");
?>
</div>
<div id="page">
<p>Add Employee!</p>
</div>
</div>
</div>
<?php include_once($BASE_PATH . "includes/layouts/footer.php"); ?>
Если вы не знаете базовый путь к вашим файлам, поместите эту строку вверху вашего PHP-кода:
echo "Your path is: " . realpath(dirname(__FILE__)) . "<br />";
И загрузите эту страницу. Где-то около вершины должна быть строка, которая читает:
Ваш путь: / / путь / к / / кодовая база /
Конечно /the/path/to/the/codebase/
будет ваш фактический путь к файлу, но это будет ваш базовый путь. Тогда просто установите $BASE_PATH
к этому значению.
Установив жестко закодированный базовый путь с $BASE_PATH
Вы всегда знаете, где находится ваш код, и можете с легкостью размещать свои страницы в любом месте структуры каталогов.
Я также рекомендовал бы использовать include_once
вместо include
чтобы избежать сценариев, в которых ваш скрипт может случайно загрузить один и тот же файл более одного раза.
include_once($BASE_PATH . "includes/layouts/header.php");