繁体   English   中英

格式化链接以轻松更改网站位置(例如在另一个网站的子目录中)

[英]Formatting links to easily change a websites location (such as in a subdirectory of another website)

我需要使用一个现有网站并将其作为另一个现有网站的子目录。 例如,我有www.website1.com和www.website2.com,我需要像这样将website2放在website1中:www.website1.com/website2/。 应当指出,我正在使用IIS托管这些网站。

实际上,我已经遇到过多次,我想知道是否有写链接的好方法,这样我可以轻松地将网站拖放到任何地方,而不必重新格式化每个链接。 我使用两个主要路径-一个用于我的根目录,一个用于我的根目录之外的include文件夹。 我最初的想法是在PHP中为这些路径使用两个路径变量,但后来无法在我的外部js和CSS文件中使用。 我不希望将这些文件转换为php文件,因为会产生缓存复杂性。

无论如何,还有其他人对此有一个好的解决方案吗? 您过去如何处理?

我最终要做的是:

对于根目录下的项目,我使用了纯相对路径。 因此,例如,当我访问图像文件夹中的图像时,链接取决于我在目录结构中位于的页面的深度:

<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/

它的工作原理是对链接没有任何更改。

对于根文件夹之外的include文件夹中的项目,我必须做些不同。 对于这些,我使用了PHP中的相对链接,我在这里http://yagudaev.com/posts/resolving-php-relative-path-problem/了解了更多信息。 他描述了几个不同的选项,但是最后,我创建了一个全局变量,如下所示:

$includesPath = $_SERVER['DOCUMENT_ROOT'] . "/../myProductsIncludes/";

这将在与根文件夹相同的文件夹中查找include文件夹。 如果需要调整include文件夹的位置,只需更改此变量中的链接。 然后,每当我向include文件夹中的文件写入url时,都会在全局变量前添加前缀,如下所示:

include $includesPath . "classes/myClass.php";

这都是相当基本的东西,并且有一些缺点,因此我不会在每个项目中都使用它,但是如果我有一个不知道它将在目录结构中结束的项目,则它会很好用(例如, (如果我要为客户签约)。 因此,例如,如果我将此内容提供给客户,他可以将我的根文件夹的内容拖放到他的网站的任何子目录中,并将include文件夹放置在与其网站的根相同的文件夹中(或只是更改该文件夹变量(如果他想将其存储在其他位置),那么这一切都无需更改链接即可完成。

如果有人对此有不同的看法,或者对我的看法有所改进,我很想听听。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM