PHP项目中的目录和路径问题

PHP项目中的目录和路径问题,php,html,url,href,absolute-path,Php,Html,Url,Href,Absolute Path,我很难找出这个路径问题。如您所见,突出显示的标记位于一个名为admin_navigation.php的文件中,href将从includes文件夹(即admin)向上移动一个目录,并到达文件posts.php。绝对路径对我和到Phpstorm的路径来说似乎是正确的,但是PHP服务器跳到了这个位置“”,但是它应该转到“”。如果有人能向我解释这种奇怪的行为,我将不胜感激 当您将文件链接到时,您不是在“引用”它们本身,而是将目标文件的内容复制到带有include()的文件中 假设您将admin\u na

我很难找出这个路径问题。如您所见,突出显示的标记位于一个名为admin_navigation.php的文件中,href将从includes文件夹(即admin)向上移动一个目录,并到达文件posts.php。绝对路径对我和到Phpstorm的路径来说似乎是正确的,但是PHP服务器跳到了这个位置“”,但是它应该转到“”。如果有人能向我解释这种奇怪的行为,我将不胜感激

当您将文件链接到时,您不是在“引用”它们本身,而是将目标文件的内容复制到带有
include()
的文件中

假设您将
admin\u navigation.php
包含在
/admin/index.php
中,包含
include('includes/admin\u navigation.php')
或类似内容。这实际上是将
admin\u navigation.php
的内容复制到
index.php
中。现在
index.php
包含完全相同的链接-

因此,
index.php
/admin
向上查找一个级别,并尝试在
CMS
中查找
posts.php
——但它无法找到,因为该文件不存在

请注意,此过程适用于包含
admin\u navigation.php
的每个文件,因此,如果您有来自多个不同文件夹的多个引用,则必须有一个绝对路径,以便所有文件正确引用目标

这将通过
完成

或者,如果您只在
admin
文件夹(
categories
index
posts
)中的文件中包含
admin\u navigation.php
),您只需在相对路径中省略父文件夹导航:

,当您链接文件时,您不会“引用”它们本身,但是使用
include()
将目标文件的内容复制到文件中

假设您将
admin\u navigation.php
包含在
/admin/index.php
中,包含
include('includes/admin\u navigation.php')
或类似内容。这实际上是将
admin\u navigation.php
的内容复制到
index.php
中。现在
index.php
包含完全相同的链接-

因此,
index.php
/admin
向上查找一个级别,并尝试在
CMS
中查找
posts.php
——但它无法找到,因为该文件不存在

请注意,此过程适用于包含
admin\u navigation.php
的每个文件,因此,如果您有来自多个不同文件夹的多个引用,则必须有一个绝对路径,以便所有文件正确引用目标

这将通过
完成


或者,如果您只在
admin
文件夹(
类别
索引
帖子
)中的文件中包含
admin\u navigation.php
,则可以根据您应该使用的文件夹结构,在相对路径中省略父文件夹导航:

/posts.php?source=add\u post

这意味着您的posts.php文件位于admin\u navigation.php的一个级别上(即。 )

如果你在给予 。/posts.php?source=add\u post


它将根据您应该使用的文件夹结构,搜索一个包含两个级别的admin\u navigation.php(即)

的文件

/posts.php?source=add\u post

这意味着您的posts.php文件位于admin\u navigation.php的一个级别上(即。 )

如果你在给予 。/posts.php?source=add\u post


它将搜索两级以上的文件,即
admin\u navigation.php

(即

)尝试使用./posts.php?source=add\u postSo-square。。您使用的是哪台服务器?@Jacks该服务器可以工作,但仍然毫无意义,因为它指向includes文件夹。对于服务器,我尝试了Phpstorm附带的Apache和PHP服务器。这两个问题都是一样的。我关心的是为什么会发生这种情况。您的
admin\u navigation.php
位于名为
/includes
的文件夹中。我认为这个文件作为
include()
包含在另一个页面上。在这种情况下,
。/
将相对于该文件夹。您在哪个页面上看到了该链接?@obsidiange是的,我在其他页面上使用了include with admin_navigation.php,该链接位于admin_navigation.phptry with./posts.php?source=add_postSo奇怪。。您使用的是哪台服务器?@Jacks该服务器可以工作,但仍然毫无意义,因为它指向includes文件夹。对于服务器,我尝试了Phpstorm附带的Apache和PHP服务器。这两个问题都是一样的。我关心的是为什么会发生这种情况。您的
admin\u navigation.php
位于名为
/includes
的文件夹中。我认为这个文件作为
include()
包含在另一个页面上。在这种情况下,
。/
将相对于该文件夹。您在哪个页面上看到该链接?@obsidiange是的,我在其他页面上使用了include with admin_navigation.php,该链接在admin_navigation.php上