【问题标题】:How to set Absolute paths that are constant throughout如何设置始终不变的绝对路径
【发布时间】:2016-11-28 23:06:35
【问题描述】:

我的根文件夹中有一个paths.php,我希望它有助于更​​简单地使用路径。我将根设置为

$server = dirname(__DIR__) . "\projectfolder";
if(!defined('ROOT')) {define('ROOT', dirname($server));}

这个设置似乎工作正常,直到我深入文件夹,例如projectfolder/includes/file.php,然后我尝试使用根常量调用样式表或其他静态文件。我做了一个 var_dump,我看到它返回 '.'

这是为什么呢?我还看到includes/ 成为该文件的新根。如何设置我的项目,以便根在整个项目中都是绝对的?

附:我尝试了其他方法如$_SERVER['SERVER_NAME']等,但我大多看到相同的问题。

P.P.S.这就是我最初使用“SERVER_NAME”时所得到的:

if(!defined('ROOT'))
{
     define('ROOT',dirname(dirname(htmlspecialchars($_SERVER['SERVER_NAME']))));
}

【问题讨论】:

    标签: php path


    【解决方案1】:

    通过使用 $_SERVER["DOCUMENT_ROOT"] 可以获取根文件夹。然后,如果你有你的配置,例如上面的一个文件夹,你可以使用

    $_SERVER["DOCUMENT_ROOT"]."/../config.php"
    

    希望对你有帮助

    【讨论】:

    • 这仅在脚本通过 HTTP 服务器运行时才有效,并且只有这样,填充 DOCUMENT_ROOT 环境变量的脚本才有效
    • 好的,我按照你的方式,现在当我试图访问静态文件时,它给出了这个错误:“不允许加载本地资源:file:///C:/...”只是作为参考,我用这个代替了我的头部标签:<?php include(ROOT.'includes/head-tag.php'); ?>。但是,在 head-tag.php 中,我用这些代替了相对路径:<link href=<?php echo CSS."/main.css"; ?> rel="stylesheet"> <link href=<?php echo CSS."/bootstrap.css"; ?> rel="stylesheet">
    • 它在哪里告诉你这个错误?你能举个例子吗?
    猜你喜欢
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2011-06-06
    • 2016-07-08
    • 2011-12-17
    相关资源
    最近更新 更多