我最近编写了一些内容,其中不知道最终代码是否位于子域(http://user.domain.com/)或子域(http://domain.com/user)中,我对这些未知场景的最佳实践感到迷茫。我能想到一对夫妇:
<? php echo $domain . "/css/styles" ?>
)处理此问题的最佳方法是什么?
答案 0 :(得分:1)
2和3的混合。使用相对于set变量的路径。
答案 1 :(得分:1)
如果对可能部署的内容有任何疑问,我会尽可能避免使用绝对路径,如果必须使用它们,请确保使用$_SERVER
超全局中的数据构建它们。值$_SERVER['PHP_SELF']
将包含当前正在执行的脚本的路径和文件名,然后您可以使用以下内容提取路径:
$path = dirname($_SERVER['PHP_SELF']);
同样,值$_SERVER['HTTP_HOST']
将包含当前主机,从这两者一起,您可以构建到任何地方的路径。如果您使用的是HTTPS,则可能还需要在$_SERVER['HTTPS']
中查看协议。
话虽如此,最好尽可能使用相对路径和简单的文件和目录结构,因为它使一切更便携,更容易阅读。如果你在例子中发现自己做了很多../css/styles.css
,那么你可能想重新考虑事情的结构。