我是网络开发的新手,我正在努力学习最佳实践。 我在本地Apache服务器上使用Dreamweaver在本地编写和运行我的网站;然后我远程部署它,我在那里测试它。 我用于我的网站(html,php和一些js)。
自从我开始这个问题以来,我一直面临一个问题,我不知道有什么好的做法可以解决它。
DOCUMENT_ROOT是一个改变的php变量;在本地,它指向xampp / htdocs(而不是我的实际网站root xampp / htdocs / myWebsite),并远程指向我的实际文档根目录。
所以现在由于上述原因我不能使用它,所以我最终使用远程服务器上的绝对路径来定位文件。
有没有好的做法可以避免这种情况?
PS:
我知道我可以更改php.ini配置文件以更改DOCUMENT_ROOT指向的位置但我不想要...
此外,我不能硬编码相对路径(正如评论员所建议的那样),因为我有一个从不同目录运行的脚本......所以我不能硬编码那里的相对路径
答案 0 :(得分:2)
另一种方法。创建配置文件并确定该站点是在本地站点还是在线站点上运行,然后在每个页面上包含该配置文件。您还可以为此设置错误报告和数据库连接等设置。
//Determine if Server is local system or live site
if(stristr($_SERVER['HTTP_HOST'],'local')||(substr($_SERVER['HTTP_HOST'],0,7)=='192.168')){
$local=TRUE;
}
else {
$local=FALSE;
}
if($local){
define('BASE_URL','http://localhost/localsite/');
define('BASE_URI','C:/localserver/htdocs/localsite/');
}
else{
define('BASE_URL','http://www.example.com/');
define('BASE_URI','server/directory/pathToRoot/');
}
然后,您可以使用php页面中定义的常量来定义路径。例如:
include(BASE_URI.'directory/filename.php');
<a href="<?php echo BASE_URL;?>directory/filename.html">Some Link</a>
它将在每次部署时正常工作。