如何在localhost上正确引用子目录(在xampp中)中的PHP,CSS等文件?

时间:2012-11-24 06:21:25

标签: php css directory xampp localhost

我在win7上运行XAMPP来测试使用PHP / MySQL / AJAX的相当简单的站点,并且遇到了无法正确引用文件的问题。

我知道C:\xampp\htdocshttp://localhost/“等效”,我在C:\xampp\htdocs\lorem_ipsum中有一个项目子目录(http://localhost/lorem_ipsum/)。其中包括一些文件夹(一个用于php脚本,一个用于css样式表等)。

我在引用这些子目录中的文件时遇到问题。

例如,在lorem_ipsum / index.php中我使用了行:

require_once 'http://localhost/lorem_ipsum/php/login.php'

这会产生错误:

Warning: require_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in C:\xampp\htdocs\lorem_ipsum\index.php on line 13

Warning: require_once(http://localhost/lorem_ipsum/php/login.php): failed to open stream: no suitable wrapper could be found in C:\xampp\htdocs\lorem_ipsum\index.php on line 13

Fatal error: require_once(): Failed opening required 'http://localhost/lorem_ipsum/php/login.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\lorem_ipsum\index.php on line 13

通过谷歌搜索我已经收集到它是某种“文件共享/安全”问题,但我完全不知道这意味着什么或如何解决它(我仍然是一个初学者)。

当我使用以下CSS时,例如:

background-image:url('http://localhost/lorem_ipsum/images/bg.png')

背景是白色,而不是'bg.png'。如果我使用'./images/bg.png',则相同。

我尝试了各种不同的方法来引用这些文件,但没有一种方法可行。我也尝试取消任何防火墙,但也没有用。

我的最终问题是:为什么所有问题都与文件引用有关?

次要问题:PHP和CSS错误是否相关,还是我把它们搞砸了?我怎么能阻止这种情况发生? apache / php中是否有需要更改的设置,或者我只是编码错了?

2 个答案:

答案 0 :(得分:3)

在PHP中,您应该引用指定的Document_Root中的文件(在您的情况下为C:\ xampp \ htdocs)。所以试试

require_once "/lorem_ipsum/phplogin.php";

如果正确托管文件,css 中的url应工作。但您也可以尝试相对路径,如:

background-image:url('/lorem_ipsum/images/bg.png');

答案 1 :(得分:0)

将require定义为require_once命令,因为PHP ini上的多个服务器上不允许使用HTTP://协议来减少一些冲突和麻烦。

<pre>
&lt;?
require_once(dirname(__FILE__) . "php/login.php")

//next script here..... 

?&gt;
</pre>

或者你想要make include命令:

<pre>
&lt;?
include "php/login.php";

//do something here..


?&gt;
</pre>

参考:http://www.php.net/manual/en/function.require-once.php / http://www.php.net/manual/en/function.include.php

并且对于css是:

 <pre>
background-image:url('images/bg.png')
</pre>