0
Warning: include(/2008/2009/assets/inc/base/error.inc.php) [function.include]:
failed to open stream: No such file or directory in
C:\Program Files\Apache Group\Apache2\htdocs\2008\2009\assets\inc\base\header.inc.php on line 82

在 WAMP 设置中包含文件时,我收到上述错误。Windows是否有可能将 /2​​008/ 解释为 c:/2008 而不是实际的http://localhost/2008

为了提供更多细节,我有一个定义为 ROOT 的常量,我在整个网站上都使用它。(本例中的 ROOT 设置为 /2008/2009/)。我在图像、链接、css 文件、包含/需要文件等的路径之前使用 ROOT。CSS 和链接正确缩放到 localhost/2008/2009,但找不到包含文件。

任何帮助将不胜感激。

PS php.ini 包含定义为的路径:

include_path = C:\Program Files\Apache Group\Apache2\htdocs"

更新

我正在使用 URL 重写将 item/x 更改为 item-display.php?id=x,文件夹中的这种更改是构建 ROOT 的基础。这使得向浏览器显示的任何内容(imgs、链接等)都可以正常工作,但是内部的任何内容都无法正常工作,因为 item-display.php 实际上是一个文件夹。我将 item-display.php 移动到一个项目文件夹,这使得客户端和服务器端的操作保持一致。

4

2 回答 2

3

您使用的是绝对路径而不是相对路径。

于 2009-02-11T13:54:09.890 回答
0

如果您使用包含路径,则必须指定一个相对 URL,从第一个目录或./. 顺便说一句,您应该dirname(__FILE__)在项目中的位置不会改变的文件中定义路径,或者通过查看 server.xml 来定义路径。否则,在另一台服务器上安装您的应用程序将会变得不必要地复杂。

于 2009-02-11T13:58:00.177 回答