PHP XAMPP服务器文档\u根文件夹结构
这是我第一次用xampp创建测试站点。我最初将所有php文件放在一个文件夹中,最近才决定组织数据(是的,事后看来,我应该从一个有组织的文件夹结构开始)。总之,我的设置如下: “[]”表示它是一个文件夹 安装在我的C:\驱动器上PHP XAMPP服务器文档\u根文件夹结构,php,xampp,document-root,Php,Xampp,Document Root,这是我第一次用xampp创建测试站点。我最初将所有php文件放在一个文件夹中,最近才决定组织数据(是的,事后看来,我应该从一个有组织的文件夹结构开始)。总之,我的设置如下: “[]”表示它是一个文件夹 安装在我的C:\驱动器上 [xampp] └── [htdocs] └── [QMS] └── [rev3] ├── [css] ├── [js] ├── [DPU] ├── [
[xampp]
└── [htdocs]
└── [QMS]
└── [rev3]
├── [css]
├── [js]
├── [DPU]
├── [login]
├── index.php
├── header.php
└── config.php
在我的“config.php”文件中,我试图定义根路径(可能是错误):
然后在我的header.php文件中,我有:
<?php
require $_SERVER['DOCUMENT_ROOT'] . "/QMS/rev3/config.php";
include $_SERVER['DOCUMENT_ROOT'] . "/QMS/rev3/login/session.php";
.....
?>
HTML - located in the <head> section
<link rel='stylesheet' type='text/css' href='<?php echo $path . "css/searchBar.css"; ?>'/>
<link rel='stylesheet' type='text/css' href='<?php echo $path . "css/tables/filtergrid.css"; ?>'/>
<script type="text/javascript" language="javascript" src='<?php echo $path . "js/jquery.dataTables.js" ?>'></script>
<script type="text/javascript" language="javascript" src='<?php echo $path . "js/jquery.loader.js" ?>'></script>
... MANY OTHER scripts and stylesheets.
当我在Chrome中启动时,我的所有脚本和样式表都会出现以下错误(总共19个错误):
当我的所有文件都在同一个文件夹中并且我没有使用服务器['DOCUMENT_ROOT']时,我的网站工作得很好,但现在我不知道该怎么做……有什么建议吗
.如果从此行中删除
/
,请尝试在开头不带“/”的“QMS/rev3/header.php”
需要$\u服务器['DOCUMENT\u ROOT']。“/QMS/rev3/header.php”代码>
如果要包含header.php文件,还需要将$path
更改为:
$path=$\u服务器['DOCUMENT\u ROOT']。“QMS/rev3/”代码>
一般来说-如果使用config.php设置$path
,并将其包含在所有页面中,则使用$path
变量,而不是$\u服务器['DOCUMENT\u ROOT']。“QMS/rev3/
。这样您就可以轻松地保存代码
关于不允许加载本地资源的,请查看不允许加载本地资源的
您在中使用的url(展开所有符号链接,并解析对/././
、/..//.//code>和额外/
字符的引用):
如果realpath()
无法解析路径,它将返回false
,这就是为什么要进行一些检查。不要使用文档根定义主路径。
将这行代码放在config.php中
$path = rtrim(dirname(__file__),"/")."/";
现在,path变量具有根路径,包括前导斜杠(/)。
在尝试了很多解决方案后,您可以使用它。
我是这样做的,因为这是本地和在线的工作方式。
您可以使用所需的路径定义变量,如下所示:
$path = "";
if ($_SERVER['HTTP_HOST'] == "localhost")
{
$path = $_SERVER['DOCUMENT_ROOT']."/mysite";
}
else
{
$path = $_SERVER['DOCUMENT_ROOT'];
}
include_once($path.'/include/config.php');
检查您在C:/xampp上的文件权限,确保用户组Everyone
具有读取权限。这些权限的确切位置是什么?标准windows权限。右键单击文件夹,转到“属性”,然后选择“安全”选项卡。我更改了每个人对C:\xampp文件夹的完全控制权限,但我仍然可以同样的错误我刚把它改为:require(“QMS/rev3/header.php”);我得到一个错误,上面写着“无法打开流”。啊,我现在明白你的意思了。我在开始时添加了$SERVER['DOCUMENT_ROOT',],网站出现了,但仍然找不到我的样式表和脚本。这很有帮助,但这里的主要问题是我得到了错误。”不允许加载本地资源”。它能够找到文件,但由于某些权限错误(可能是通过xampp)而无法加载它们。在您的示例中,我将使用define('ROOT\u PATH',realpath(ROOT./....)
而不是define('ROOT\u PATH','uuuu DIR\uu./....)
。无需再次确定DIR是什么,在解析路径时,您也不希望PHP在目录中导航。realpath()
一次性完成此操作,并删除最后的斜杠
"NOT ALLOWED TO LOAD LOCAL RESOURCE file///C:/xampp/htdocs/QMS/rev3/ ......etc..."
<link rel="stylesheet" type="text/css" href="/QMS/rev3/css/searchBar.css" />
define('ROOT_PATH', __DIR__);
require ROOT_PATH . '/header.php';
define('ROOT_PATH', __DIR__ . '/../..');
# ...
require ROOT_PATH . '/QMS/rev3/header.php';
$rootPath = __DIR__ . '/../..'; # or just __DIR__
$realPath = realpath($rootPath);
define('ROOT_PATH', $realPath ?: $rootPath);
$path = rtrim(dirname(__file__),"/")."/";
$path = "";
if ($_SERVER['HTTP_HOST'] == "localhost")
{
$path = $_SERVER['DOCUMENT_ROOT']."/mysite";
}
else
{
$path = $_SERVER['DOCUMENT_ROOT'];
}
include_once($path.'/include/config.php');