【问题标题】:Php directory problem in include_once()include_once() 中的 PHP 目录问题
【发布时间】:2011-06-18 08:05:05
【问题描述】:

我在 /image 目录中有一个 Header.php 文件。我曾经编写包含文本和图像的标题内容。这个 Header.php 文件包含在 php 项目的不同目录和子目录的所有其他页面中。

我的问题是,当从子目录访问任何页面时,header.php 中的图像没有显示在该页面中。

谢谢

【问题讨论】:

  • 当我使用图像目录 src="images/image.jpg" 时,图像显示为包含在 /index.php 中,但未显示为 /display/index.php。但是当我使用 src="/images/image.jpg" 时, /index.php 和 /display/index.php 都没有显示
  • 看我的回答。这是因为当头文件包含在display/index.php中时,它假设显示目录中有一个目录images,并尝试在其中查找图像,但由于没有目录,它不显示。

标签: php html


【解决方案1】:

使用绝对 URL。例子:

<img src="http://yoursite.com/images/image.jpg" />

<img src="/images/image.jpg" />

这样,您就不会与相对路径作斗争。如果你想偷懒,你可以做的另一件事是使用&lt;base&gt; 标签,它的标签是pros and cons

【讨论】:

  • 不工作,当我使用图像目录 src="images/image.jpg" 图像显示为包含在 /index.php 中,但没有显示为 /display/index.php。但是当我使用 src="/images/image.jpg" 时, /index.php 和 /display/index.php 都没有显示
  • @fean:它应该正常工作...您尝试使用完整的 URL 了吗?如果是这样并且有效,那么 URL 到底是什么样的?
  • 它适用于完全指定的 URL,例如:xyz.com/../image.jpg,但不适用于第二个......
  • xyz.com/../image.jpg 肯定不是完整的 URL。你能提供有效的实际网址吗?确保将其包裹在“反引号”中,否则其中的一部分会从 cmets 中剥离。 /leading/forward/slash 网址应该可以工作,我认为您可能使用了错误的路径。
  • 我在 localhost 中尝试过,给出了完整的地址。 "localhost/project/images/image.jpg"
【解决方案2】:

您可能在包含中使用了相对路径,这意味着 header.php 可能包含也可能不包含,具体取决于您当前的文件是否位于“正确”目录中。

你可以做的是:

  • 在包含中使用绝对路径
  • 根据当前文件在层次结构中的位置修改包含路径

【讨论】:

    【解决方案3】:

    可能是因为您在头文件中给出了图像的硬代码路径,该路径位于同一目录中,例如“test.jpg”。这就是为什么当头文件包含在子目录中时,它会尝试在同一目录中查找 test.jpg 图像并没有找到它。您可以使用绝对路径来修复它。

    【讨论】:

    • 谢谢,是的,目录的问题,找不到图片文件。但是使用同一行代码如何在目录以及其他一些子目录中找到它?
    • @fean 你解决了吗?如果你还没有,也许你应该在你的帖子中写你的代码,我会尽力提供帮助。
    【解决方案4】:

    如果您改用require_once(),则除非找到该文件,否则网站将不会加载。然后,您会收到一条错误消息,告诉您究竟是什么不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 2014-01-17
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多