设置包括菜单导航的路径,以便页面链接知道网站根的位置,以便不破坏链接


Set-up include path for menu navigation so page links know where the site root is located in order to not break links

我还没有成功地让我的远程服务器环境表现得像我的测试服务器环境一样——反之亦然——关于我的导航"包含代码",我已经包含在我的各种页面(这些页面驻留在站点的其他文件夹中)。

我的菜单在以这种方式调用包含到该页的页面中显示良好…

<?php include("../includes/navigation.php"); ?>

但是我的MAMP测试服务器似乎希望我在每个菜单项中除了我提供的链接之外还添加根文件夹,所以我通过添加我的站点根文件夹来更改链接,像这样…

<a href="/mysite/courses/list.php"

和导航菜单似乎可以工作,可以进入一个文件夹并返回到另一个文件夹(然后我在远程服务器上测试它时意识到它不好)。

我有坏的/坏的链接。

所以我为远程服务器更改了这样的东西…

 <a href="/courses/list.php"

链接似乎在远程上工作,但我需要修复它,以便我使用的代码在测试和远程服务器上都能工作…

所以,我试图~~理解/控制/和修复~~我的include_once代码提供适当的菜单导航为我所有的各种页面,无论我是在我的测试服务器上还是在我的远程服务器上,无论我是在一个文件夹或另一个。这可能吗?我的方法对吗?

(目前,我的根文件夹有一个索引页,然后在里面,我有3个文件夹,其中有一个文件夹(包括)存放我的导航。php页面)

我一直在寻找如何得到我的页面(位于不同的文件夹),以识别他们在哪里,相对于网站的根文件夹。作为搜索的结果,我决定将这段代码插入到我的"courses文件夹"中的list.php页面中…

   <?php
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "/includes/navigation.php";
   include_once($path);
   ?> 

在我的一个页面上,然后在我的测试服务器(MAMP)上测试它-但现在菜单甚至不显示…

       <?php
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "../includes/navigation.php";
   include_once($path);
   ?> 

所以我正在寻求理解的帮助-我在我的理解/执行中缺少什么,以获得页面现在显示导航菜单以及知道它相对于根的位置。

我欢迎任何的意见来帮助我理解如何连接点来解决这个问题。正如我在另一篇文章中读到的,有人说他们的网站根文件夹指向哪里有问题(它指向服务器根文件夹,而不是网站根文件夹)-

我怎么知道我的问题是什么?你怎么检查这个?

我也遇到过同样的问题。我所做的是解决这个问题,而不是简单地使用"..includes/nav.php",我使用了文件的绝对路径。它应该看起来像这样:

"/var/www/html/nav.php"包括

指定到文件的确切路由。您可以通过托管文件管理页面找到它。登录到文件管理,在文件夹中找到nav文件,并使用该文件的确切url