【发布时间】:2016-06-02 21:35:20
【问题描述】:
我正在尝试在本地开发一个网站,最终通过 FTP 连接到我的服务器。我的index.php 文件包含以下行:
<?php include($_SERVER['DOCUMENT_ROOT'] . "/includes/header.php");?>
我们的想法是在网站的每个页面中包含一个单独的 header.php 文件。此代码适用于服务器,但不适用于 localhost,因为$_SERVER['DOCUMENT_ROOT'] . 部分仅对服务器有效。
有没有办法让服务器和本地主机的路径都正确,所以从本地主机移动到服务器时我不需要编辑每个网页?
以上内容与 PHP 有关,但我还需要针对 HTML 代码回答相同的问题,例如:
<img src="/images/logo.png" alt="site name" />
从服务器的 Web 根目录开始。这会在 localhost 上工作吗?
我假设这一定是一种常见的需求,并且想知道传统智慧是什么。我没有使用框架(只是一个文本编辑器)。提前感谢任何 cmets/帮助。
更新
我在这里看到一个类似的问题,
How to set root folder for PHP include files
虽然答案与使用 config.php 文件有关,但我没有该文件,也没有涉及 HTML 部分。
【问题讨论】:
-
$_SERVER['DOCUMENT_ROOT']怎么可能只在一台服务器上有效,而在另一台服务器上无效? -
其他服务器,我认为你的意思是本地主机。它只是指向不同的位置(例如,根不同,因此不能对 localhost 和服务器使用相同的代码)。
-
域的文件是否存储在本地服务器上的 Web 根目录的子目录中,而不是生产服务器上?反之亦然?
-
不,看起来 localhost (Mac Mavericks) 上的 DOCUMENT_ROOT 指向
/Library/WebServer/Documents,我的文件存储在/Users/myname/Sites/文件夹中。 -
这毫无意义。文件怎么可能不在 DOCUMENT_ROOT 中?
标签: javascript php html css