在PHP中具有重要路径定义的文件

时间:2016-04-22 12:47:37

标签: php css path

我尝试使用所有路径的定义创建文件configuration.php

首先,页面和会话开始后,autoload.php中包含index.php个文件。

require_once $ _SERVER [' DOCUMENT_ROOT']。DIRECTORY_SEPARATOR。' config' .DIRECTORY_SEPARATOR。' configuration.php';

CONST。 DIRECTORY_SEPARATOR 是默认" /" ,但我尝试将 DS 设为" /&# 34;

然后,在configuration.php

define('DS',                DIRECTORY_SEPARATOR);
define('DIR_BASE',          $_SERVER['DOCUMENT_ROOT']);
define('DIR_CONFIG',        $_SERVER['SCRIPT_FILENAME']);
define('DIR_APP',           DIR_BASE.DS.'app');
define('DIR_ASSETS',        DIR_BASE.DS.'assets');
define('DIR_CSS',           DIR_ASSETS.DS.'css');

但是以这种方式生成的路径看起来如下:

    <link rel="stylesheet" href="C:/xampp/htdocs/pro_name\assets\css/vendor/bootstrap.min.css">
    <link rel="stylesheet" href="C:/xampp/htdocs/pro_name\assets\css/vendor/font-awesome.min.css">
    <link rel="stylesheet" href="C:/xampp/htdocs/pro_name\assets\css/app.css">
    <link rel="stylesheet" href="C:/xampp/htdocs/pro_name\assets\css/debug.css">

在Chrome开发者工具中我得到了例如:

Not allowed to load local resource: file:///C:/xampp/htdocs/pro_name/assets/css/vendor/bootstrap.min.css

我想为localhost和生产服务器创建通用路径。哪里弄错了?

1 个答案:

答案 0 :(得分:1)

问题没有指明这一点,但我怀疑实际问题是生产系统在website.com/index.php上运行,而开发系统正在使用localhost/w8/index.php。当自动装带器设置为使用/作为项目根目录时,开发系统上的这个额外文件夹会导致问题。

chrome dev工具的问题是使用$_SERVER['DOCUMENT_ROOT']引起的,它返回文件系统路径而不是相对的网站文件夹路径。

要解决此问题,您需要在localhost上复制生产系统。您可以通过将hosts条目设置为project.local并在访问此域时设置apache以提供htdocs/w8/文件夹来执行此操作。

使用this guide修改您的hosts文件,使其具有以下条目:

127.0.0.1 project.local

然后,在您的apache配置中添加一个条目,以允许对project.local域的请求:

<VirtualHost project.local:80>
    DocumentRoot "C:/xampp/htdocs/w8/"
    ServerName project.local
</VirtualHost>

注意:此apache配置未经测试!最好的办法是复制现有虚拟主机,将*更改为project.local,并将文档根目录修改为w8文件夹而不是整个htdocs文件夹。

现在,您应该可以通过在浏览器中打开http://project.local来访问您的项目了。然后,您可以将/设置为DIR_BASE,它应该适用于您的生产服务器和测试系统(只要您在本地工作时使用别名域http://project.local

我实际上没有对此进行测试,但这些是您需要遵循的步骤才能使其正常运行。