以下是这种情况,我想从网站根目录调用图像(而不是使用../),
生产网站:http://www.example.com/details/
图像路径为/img/header/logo.png
在UAT http://www.testingserver.com/abc-ver3/details/上 图像路径为/abc-ver3/img/header/logo.png
在当地http://localhost/abc/上 图像路径为/abc/img/header/logo.png
我目前正在使用一种愚蠢的方式来获取网站的根目录:
文件/includes/layout.php中的:
<?php $siteroot = '/abc'; ?>
<img src="<?php echo $siteroot ?>/img/header/logo.png" alt="ABC Co.">
我在部署到另一台服务器时手动更改路径
无论如何都要自动检测根路径?
对不起愚蠢的问题,但我找不到路。
答案 0 :(得分:0)
快速又脏,
$server = $_SERVER['SERVER_NAME'];
$siteroot = 'details'; //default val
if(substr_count($server, 'example.com.'))
$siteroot = 'details';
else if(substr_count($server, 'tetsingserver.com'))
$siteroot = 'abc-ver3/details';
else
$siteroot = 'abc';
return $siteroot;
这是一种执行此操作的黑客方式。
理想情况下,这将进入引导程序。 OOP为胜利。
快乐编码
答案 1 :(得分:0)
我刚发现另一种在我的本地工作的脏方法,不确定它是否适用于生产网站:
in /includes/layout.php
$path = dirname(__FILE__); //returns "C:\wamp64\www\abc\includes"
$path = str_replace("\\","/",$path) //returns "C:/wamp64/www/abc/includes"
$path = str_replace($_SERVER["DOCUMENT_ROOT"],"",$path) //returns "/abc/includes"
$siteRoot=str_replace('/includes','',$path) //returns "/abc"
or in short:
$siteRoot=str_replace('/includes','',str_replace($_SERVER["DOCUMENT_ROOT"],'',str_replace("\\","/",dirname(__FILE__))));