Должно быть что-то, что я пропускаю, но я не могу заставить свои включения работать, как ожидалось, используя относительные пути. В MAMP DocumentRoot настроен в httpd.conf следующим образом:
# MAMP DOCUMENT_ROOT !! Don't remove this line !!
DocumentRoot "/Applications/MAMP/projects/journalproject”
Я поднимаю сайт на HTTP: // локальный: 8888 / и include отлично работают, если я использую путь, подобный этому:
<?php include('nav.php'); ?>
Но, если я положу свой включаемый файл в папку, включение не будет отображаться на странице:
<?php include('/includes/nav.php'); ?>
Это путь к включаемому файлу: /journalproject/includes/nav.php
Я звоню отсюда: /journalproject/journals/index.php
Я также могу включить включение, если я использую путь, подобный этому:
<?php include('../includes/nav.php'); ?>
Я не уверен, почему мне нужно указывать путь для включения, когда якорная ссылка без проблем находит тот же файл, используя относительный путь:
<a href="/includes/nav.php">Find nav include</a>
Я не уверен, куда идти отсюда. Любая помощь будет принята с благодарностью.
Я полагаю, что приведенное ниже не работает, потому что он рассматривается как абсолютный путь, так как он начинается с «/», который говорит PHP искать из буквального каталога «/» в операционных системах Unix:
<?php include('/includes/nav.php'); ?>
Пытаться:
<?php include('includes/nav.php'); ?>
Вы можете указать файлы относительно пути включения, не зная, где находится ваш конкретный файл .php, который вызывает include / require:
http://php.net/manual/en/function.set-include-path.php
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'])