当通过子域访问页面时,所有包含和相对路径都会中断(即使服务器上的目录结构应该允许相对路径找到它)。让多个子域上的文件访问中央资源(不使用绝对路径)的最佳方式是什么?
一个 JavaScript 示例:
m_url : '../code/php/UserAPI.php',
$.ajax({
url: someClass.m_url,
dataType: "json",
data: paras,
success: function(ret){someClass.onLoggedIn(ret, callback)}
});
如果此 UserAPI 是从 subdomain1.example.com
和 subdomain2.example.com
调用的,但 php 驻留在 example.com
如何可以使相对路径遵循 linux 目录结构,而不是添加尝试连接子域/域路径吗?
附言。 m_url 不能被硬编码的原因是因为代码必须在开发和生产服务器上工作。
一如既往的感谢!!
最佳答案
您可以使用 $_SERVER['PATH_TRANSLATED']
根据文件系统确定当前位置,然后相对于该位置。但是,它会 require some tweaking to the Apache setup .
也许另一种解决方案是通过 $_SERVER 感知您所在的主机(Dev、Prod 等)并根据需要定义这些路径。然后,只需在定义路径之前设置前缀。当然,它需要几行额外的代码,但它可以将大脑损伤减少一半。该策略已在我工作过的许多大型生产环境中使用。
关于php - 一种使用子域获取相对路径的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3944650/