PHP 使用相对于本地服务器计算机的路径,而 HTML 使用相对于本地服务器计算机的路径。website。它们在运行时的定义方式存在根本差异。
PHP
如果您使用 PHP,您应该养成这样的习惯NOT使用相对路径at all但要使用绝对路径,这将保证每次都成功(只要目标文件存在并且可访问等)。
so; use $_SERVER['DOCUMENT_ROOT']
作为旁注,你do not需要使用括号include
s/require
s,它只是给服务器更多的工作要做,而没有额外的好处。
The $_SERVER['DOCUMENT_ROOT']
是 PHP/Web 应用程序的基目录,通常是文件夹的内容public_html/
.
HTML
HTML 也使用文档根,但有一种更简单的方法可以通过键入 PHP 来引用它们$_SERVER
每次都有变量。
在 HTML 中引用其他文件/媒体时,您应该避免文档相对路径,而是将每个路径设置为网站根目录相对而言,这可以通过以斜线开头每个文件/图像请求来轻松完成(/
)这表明浏览器应该从基本 HTML 目录开始查找。
File: logo.png
地点:www.site.com/images/logo.php
从以下位置获取文件www.site.com/greatholidays/index.php
意味着你需要../images/logo.png
但是在 PHP 中包含一些引用该文件的 HTML(例如标头包含)将意味着该调用无法在www.site.com/index.php
页;因此,只需在每个引用调用之前加上斜杠即可:
../images/logo.png ==> Becomes ==> /images/logo.png
^^^
Tells the browser to look from the base directory.
Example:
-
包含文件:/public_html/inc/nav.php
<a href="/index.php">Home</a>
<a href="/cabbages.php">My Collection of Giant Cabbages</a>
<a href="/horse/whyIlovehorses.php">Why I love horses</a>
-
文件包含是从以下位置调用的:www.site.com/index.php ~ /public_html/index.php
<html>
<body>
<main>
<nav>
<?php include $_SERVER['DOCUMENT_ROOT']."/inc/nav.php"; ?>
</nav>
</main>
...
在上面的例子中,无论在哪里nav.php
文件由 PHP 调用或显示 HTML 输出的位置, nav 元素中引用的链接将始终到达相同的位置。