我想知道这种设置是否可行,因为我在设置时遇到了很多麻烦。我试图建立一个网站的文件结构如下:
-
project1 (文件夹)
- index . php
- style.css
- include.php
- 管理(文件夹)
- index . php
- 管理(文件夹)
父文件夹"project1"位于D:'Projects'project1的'server1' .
通过虚拟目录"http://server1/project1"访问该网站。
我想能够写所有的路径包括,图像src,样式表等,在格式'/style.css',这样的文件可以找到,无论他们在哪里需要。例如,下面的链接应该工作,无论它被放置在'project1'文件夹或'admin'文件夹:
<link rel="stylesheet" type="text/css" href="/style.css">
EDIT:作为mellamokb建议的,使用href="/project1/style.css"似乎可以从'index.php'文件中工作。然而,我似乎找不到一个类似的解决方案为PHP INCLUDE。
<?php include_once '/include.php'; ?>
…在这两个index.php文件中,admin目录中的一个无法找到该文件。
我期望$_SERVER['DOCUMENT_ROOT']返回"D:'Projects'project1",但它返回D:'staging,我不知道为什么。我尝试了几种不同的方法来设置项目的"根",但我只是结束了更困惑自己!项目的虚拟根应该是'http://server1/project1',物理根应该是D:'Projects'project1,但我不知道如何强制执行。
您可以创建一个包含常量的文件,并拥有诸如define('BASE_URL', "http://server1/project1/")
之类的内容。然后,您可以使用恒定变量BASE_URL
相对工作,因此,
<link rel="stylesheet" type="text/css" href="<?php echo BASE_URL; ?>style.css">
你也可以通过附加"相对"地址来处理其他文件。
include (BASE_URL . '<file you want to add>');