gpt4 book ai didi

PHP XAMPP 服务器 DOCUMENT_ROOT 文件夹结构

转载 作者:行者123 更新时间:2023-12-03 23:00:39 36 4
gpt4 key购买 nike

所以这是我第一次使用 xampp 创建测试站点。我最初将所有 php 文件都放在一个文件夹中,最近才决定组织数据(是的,事后看来我应该从一个有组织的文件夹结构开始。)无论如何,我的设置是这样的:

“[]”表示它是一个文件夹

安装在我的 C:\驱动器上

[xampp]
└── [htdocs]
└── [QMS]
└── [rev3]
├── [css]
├── [js]
├── [DPU]
├── [login]
├── index.php
├── header.php
└── config.php

在我的“config.php”文件中,我试图定义一个根路径(这可能是错误):

$path = $_SERVER['DOCUMENT_ROOT'] . "/QMS/rev3/";

.

然后在我的 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.

.我的 index.php 是:

require $_SERVER['DOCUMENT_ROOT'] . "/QMS/rev3/header.php";

当我在 Chrome 中启动它时 - 我的所有脚本和样式表都出现以下错误(总共 19 个错误):

"NOT ALLOWED TO LOAD LOCAL RESOURCE  file///C:/xampp/htdocs/QMS/rev3/ ......etc..."

当我的所有文件都在同一个文件夹中并且我没有使用 SERVER['DOCUMENT_ROOT'] 时,我的网站运行正常,但现在我不知道该怎么做...有什么建议吗?

.

最佳答案

不允许加载本地资源

您在 <a> 中使用的网址, <link> , <script>等标签应该相对于文档根目录,例如:

<link rel="stylesheet" type="text/css" href="/QMS/rev3/css/searchBar.css" />

不要混淆磁盘上的路径url,它们是两个完全不同的东西:)

关于确定根路径的建议

我建议不要依赖 $_SERVER['DOCUMENT_ROOT']变量,但像这样确定根文件夹(在 config.php 中):

define('ROOT_PATH', __DIR__);

您将有一个名为 ROOT_PATH 的常量其中将包含 C:\xampp\htdocs\QMS\rev3 (没有尾随 / )。

现在您可以执行以下操作:

require ROOT_PATH . '/header.php';

ROOT_PATH中的路径不同于文档根目录。如果您真的想使用文档根目录,请执行此操作(这样 ROOT_PATH 将包含 C:\xampp\htdocs ):

define('ROOT_PATH', __DIR__ . '/../..');

# ...

require ROOT_PATH . '/QMS/rev3/header.php';

规范化绝对路径名

使用 realpath() 可能是明智的如Capsule所述(展开所有符号链接(symbolic link)并解析对 /.//../ 和额外 / 字符的引用):

$rootPath = __DIR__ . '/../..';  # or just __DIR__
$realPath = realpath($rootPath);
define('ROOT_PATH', $realPath ?: $rootPath);

如果realpath()无法解析它将返回的路径 false ,这就是为什么要进行一点检查。

关于PHP XAMPP 服务器 DOCUMENT_ROOT 文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048976/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com