php包括不处理相对路径-DocumentRoot问题?妈妈?
一定有什么我忽略了,但我似乎无法使用相对路径让我的include按预期工作。在MAMP中,DocumentRoot在httpd.conf中的配置如下:php包括不处理相对路径-DocumentRoot问题?妈妈?,php,apache,server-side-includes,Php,Apache,Server Side Includes,一定有什么我忽略了,但我似乎无法使用相对路径让我的include按预期工作。在MAMP中,DocumentRoot在httpd.conf中的配置如下: # MAMP DOCUMENT_ROOT !! Don't remove this line !! DocumentRoot "/Applications/MAMP/projects/journalproject” <?php include('nav.php'); ?> <?php include('../includes
# MAMP DOCUMENT_ROOT !! Don't remove this line !!
DocumentRoot "/Applications/MAMP/projects/journalproject”
<?php include('nav.php'); ?>
<?php include('../includes/nav.php'); ?>
如果我使用这样的路径,我会在上打开该站点,并且包含的工作很好:
# MAMP DOCUMENT_ROOT !! Don't remove this line !!
DocumentRoot "/Applications/MAMP/projects/journalproject”
<?php include('nav.php'); ?>
<?php include('../includes/nav.php'); ?>
但是,如果我将include文件放入文件夹中,则include不会显示在页面上:
<?php include('/includes/nav.php'); ?>
这是包含文件:/journalproject/includes/nav.php的路径
我在这里调用它:/journalproject/journals/index.php
如果我使用如下路径,我还可以让include工作:
# MAMP DOCUMENT_ROOT !! Don't remove this line !!
DocumentRoot "/Applications/MAMP/projects/journalproject”
<?php include('nav.php'); ?>
<?php include('../includes/nav.php'); ?>
我不确定当锚链接使用相对路径查找同一文件时,为什么需要指定包含的路径:
<a href="/includes/nav.php">Find nav include</a>
我不知道接下来该怎么办。如果有任何帮助,我们将不胜感激。我认为以下内容不起作用,因为它被视为一个绝对路径,因为它以“/”开头,告诉PHP在Unix操作系统中从文本“/”目录中查看:
尝试:
您可以指定与include路径相关的文件,而不必知道调用include/require的特定.php文件的位置:
设置包含路径(get\u include\u path().path\u SEPARATOR.$\u SERVER['DOCUMENT\u ROOT'])
相对于您的文档根目录(您的脚本可能从其中运行,或者设置了包含路径)。感谢您的帮助。我尝试了但没有成功,即使是在根文件夹中的文件上。我认为这是我的一个误解,Apache的文档根也会指定PHP的路径。我尝试了这个方法,效果很好:很高兴你取得了一些成功。您还可以在PHP中指定一个包含路径,这些路径将搜索您的包含/要求。通过这种方式,您可以指定与包含路径相关的文件,而无需知道调用包含/要求的特定.php文件的位置:即set\u include\u path(get\u include\u path().path\u SEPARATOR.$\u SERVER['DOCUMENT\u ROOT'])