我尝试使用所有路径的定义创建文件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和生产服务器创建通用路径。哪里弄错了?
答案 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
) 的
我实际上没有对此进行测试,但这些是您需要遵循的步骤才能使其正常运行。