这就是我最终做的事情:
对于我的根目录下的项目,我使用了纯相对路径。因此,例如,当我访问图像文件夹中的图像时,链接取决于我在目录结构中所在页面的深度:
<img src='./images/myImg.png'/> <!-- in root dir -->
<img src='../images/myImg.png'/> <!-- 2 levels deep -->
<img src='../../images/myImg.png'/> <!-- 3 levels deep -->
这并不理想,因为我必须考虑每个链接与我所在的文件的关系,如果我更改图像文件夹或文件的位置,我需要更改每个链接。积极的一面是,只要我不开始更改我的目录结构,我就可以将此文件夹放置在任何级别,并且无需更改即可工作。例如,我可以这样做:
www.website2.com
www.website1.com/website2/
www.website1.com/sub-directory/website2/
它可以在不对链接进行任何更改的情况下工作。
对于根文件夹之外的包含文件夹中的项目,我必须做一些不同的事情。对于那些,我在 PHP 中使用了相对链接,我在这里了解了更多信息http://yagudaev.com/posts/resolving-php-relative-path-problem/。他描述了几个不同的选项,但最后,我创建了一个全局变量,如下所示:
$includesPath = $_SERVER['DOCUMENT_ROOT'] . "/../myProductsIncludes/";
这将在与根文件夹相同的文件夹中查找包含文件夹。如果我需要调整包含文件夹的位置,我只需更改这个变量中的链接。然后,每当我将 url 写入包含文件夹中的文件时,我都会在全局变量前面添加,如下所示:
include $includesPath . "classes/myClass.php";
这都是相当基本的东西,并且有一些缺点,所以我不会在每个项目中都使用它,但是如果我有一个我不知道它会在目录结构中结束的项目(例如,如果我为客户签约)。因此,例如,如果我将其提供给客户,他可以将我的根文件夹的内容放到他网站上的任何子目录中,并将包含文件夹放在与他网站的根目录相同的文件夹中(或者只是更改那个变量,如果他想将它存储在其他地方),并且无需更改链接即可全部工作。
如果有人有不同的方式来做到这一点,或者对我的方式有任何改进,我很想听听。