【问题标题】:PHP Parse HTML img tag src path not workingPHP Parse HTML img tag src 路径不起作用
【发布时间】:2013-05-17 15:38:06
【问题描述】:

我有一些由 PHP 解析的 HTML 代码,我希望图像标签是相对的,因为代码需要在多个服务器上工作。

我在目录中有index.php 作为文件夹icons,在icons 中有一个名为logo.png 的图像。代码是index.php是这样的:

echo '<img src="icons/logo.png">';

但不起作用。但是,如果我将其更改为这种路径(http://mydomain...),它确实可以工作。

在其中一台服务器上,index.phpicons 都位于子域目录中,而在另一台服务器上,它们位于根目录中。在这两种情况下,相对路径都不起作用。

我该如何解决这个问题?

谢谢。

编辑:在我的 HTML 检查器中,我可以看到图像的 URL 被正确解析。

【问题讨论】:

  • 这不是绝对路径http://mydomain..检查here
  • 这只是一个例子......它实际上是:http://mydomain.com/icons/logo.png
  • 仍然不是绝对路径,这是一个 http 地址,用于将用户重定向到您的 public_html 文件夹 /home/username/public_html/ 可能是例如绝对路径
  • 哦,很抱歉,那么这就是行之有效的路径。不是绝对路径。
  • 这不是解决方案

标签: php html path


【解决方案1】:

如果您的文件位于根目录 public_html/ 中,那么您无需执行任何操作,只需使用 /icons/logo.png 访问它即可。但是,如果您希望将子目录作为自己的根目录,请执行以下操作:

如果您可以访问httpd-vhosts,则需要为apache设置Virtual Host并将其链接到子目录,作为其下所有文件/文件夹的根目录。

那你就用"/icons/logo.png"

如果您无权访问 VHosts 或 apache 文件并且您在共享主机上托管,那么您需要阅读 .htaccess 以捕获请求并检查 img 是否存在于根目录中(如果不存在)检查它是否存在于子目录中。

另一种方法是只使用站点 URL 的全局变量,例如:

  define('SITE_URL', 'http://mysite.com/');

并链接到您的图片,例如:&lt;?=SITE_URL?&gt;icons/logo.png

对于每台服务器,您只需修改 SITE_URL

【讨论】:

  • 为什么我必须在不使用子域的服务器上执行此操作?通常我可以简单地做 /icons/logo.png
  • 因为前面的/指的是根目录。如果您不使用子目录,则无需执行任何操作。您需要 VHosts 或其他方式的子目录
  • 检查我自己的问题和解决方案的答案。
【解决方案2】:

你需要知道你在服务器或 wamp 服务器 c:/wamp/www/ 中的路径是什么 所以你可以把这个

echo '<'img src="/icons/biglogo.png  >

否则您需要更改路径或放置完整路径

echo '<'img src="/mysite/img/icons/biglogo.png" >';

【讨论】:

    【解决方案3】:

    好的,我发现了问题! 不需要复杂的解决方案,因为问题是这样的:

     icons/
    

    当转到http://mydomain.com/icons 时,我发现自己在一些包含 apache 图标的 apache 文件夹中。 所以我想它会把我带到域的根目录,然后进入一些图标文件夹。

    icons/ 更改为例如images/ 时,效果很好!

    【讨论】:

    • 这不是一个解决方案,而是一个 hack。今天您在根 apache 文件夹中没有 images 文件夹,因此您需要重命名所有文件夹/文件以不匹配 apache 根文件/文件夹。相反,我会更多地阅读我的答案,并可能阅读更多关于 VHosts 和 htaccess 重写规则来解决问题
    猜你喜欢
    • 2021-02-12
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 2015-08-07
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多