【问题标题】:dirname(__FILE__) adds path after my domaindirname(__FILE__) 在我的域之后添加路径
【发布时间】:2015-01-30 22:22:39
【问题描述】:

这是我使用 PHP 函数 dirname() 的问题

首先让我解释一下,我正在一个网站上定义一个常量,如下所示:

define('ROOT', dirname(__FILE__));

这在共享主机上运行良好,但我不得不将网站移动到专用服务器上,现在我尝试使用绝对链接调用的一些文件返回 404。当我查看他们使用的路径时,会出现如下内容:

http://myIp/var/www/myWebsite/[...]/image.jpg

发生的情况是,我的“ROOT”常量是“/var/www/myWebsite”,但它不是“替换”我的域,而是添加到它的末尾。这是没有意义的,因为我的 Apache VirtualHost 将所有对“myIp”的请求发送到本地文件夹“/var/www/myWebsite”。

我不知道错误是来自我的 PHP 代码,还是我的 Apache VirtualHost。

感谢您的帮助,我确定这很愚蠢,但我不知道我做错了什么:)

【问题讨论】:

  • 你为什么不具体定义ROOT这个常量呢?从当前工作目录推导出相对网站路径段要复杂一些。
  • 是的,我想,我需要的只是一个常量变量,我可以调用它来缩短对图像的调用,虽然这是正确的方法,但由于 dirname() 是将相对路径转换为绝对路径,我可能没有做最干净的事情。

标签: php apache path absolute dirname


【解决方案1】:

我认为您将服务器路径与站点路径混淆了。

您不希望使用 dirname 为您提供网络资产的路径。

如果你真的想这样做,你可以做的是删除你的网络根目录的路径。

这可能有效:

define('ROOT', str_replace('/var/www/myWebsite/', '/', dirname(__FILE__)));

【讨论】:

  • 你是对的,它是我想要的,但是,你如何调用根站点路径?我虽然根站点路径和根服务器路径是相同的
  • 根网站路径是 / 而服务器上到网站根目录的绝对路径是 /var/www/myWebsite/ (或其他任何东西)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 2014-02-26
  • 2014-02-04
  • 2012-10-23
  • 2012-06-21
  • 2011-09-24
相关资源
最近更新 更多