1

我是 Web 开发的新手,我正在努力学习最佳实践。我在本地 Apache 服务器上使用 Dreamweaver 在本地编码和运行我的网站;然后我远程部署它并在那里测试它。我用于我的网站(html、php 和一些 js)。

自从我开始这个问题以来,我一直面临一个问题,我不知道有什么好的做法来解决它。

DOCUMENT_ROOT 是一个改变的 php 变量;它在本地指向 xampp/htdocs(而不是我的实际网站根 xampp/htdocs/myWebsite),远程它指向我的实际文档根。

因此,由于上述原因,现在我不能使用它,所以我最终使用远程服务器上的绝对路径来定位文件。

有避免这种情况的好习惯吗?

PS:

  • 我知道我可以更改 php.ini 配置文件以更改 DOCUMENT_ROOT 指向的位置,但我也不想要..

  • 另外,我不能硬编码相对路径(正如评论员所建议的那样),因为我有一个从不同目录运行的脚本......所以我不能在那里硬编码相对路径

4

1 回答 1

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>

并且它将在每次部署中正常工作。

于 2013-06-23T06:23:46.327 回答