相对 HTML 图像参考 (LAMP)


Web

开发真的很新,但我无法弄清楚为什么我的相对图像引用不起作用。我在 DocumentRoot [/var/www/vhosts/project0/html/] 中.php有索引,有一个单独的文件夹,我在其中放置了我的图像 [/var/www/vhosts/project0/images/]。我查看了权限,它们似乎还可以;请参阅下面的 [/var/www/vhosts/project0/] 中的 ls -l 输出:

  • drwxr-xr-x 2 aiden aiden 4096 Mar 12 18:48 HTML
  • drwxr-xr-x 2 aiden aiden 4096 2 月 14 日 12:12 图片

我的HTML如下:

<!DOCTYPE html>
<html>
  <head>
    <link type="text/css" rel="stylesheet" href="stylesheet.css"/>
    <title>My Lecture Reader</title>
  </head>
  <body>
    <h1>CSCI S-75</h1>
    <ul>
      <img src="P001.jpg"/> <br> <!-- Works -->
      <img src="../images/P001.jpg"/> <br> <!-- Doesn't Work -->
    </ul>
  </body>
</html>

注意:我已经将P001.jpg从图像/复制到html/进行调试。

我在VirtualBox上运行Xbuntu,Apache2作为Web服务器。

如果你能提供帮助,或者为我指出正确的方向,那就太好了。

干杯

艾 登

额外细节:

项目0.conf 摘录:

<VirtualHost *:80>
    ServerName project0
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/vhosts/project0/html/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我的相对图像引用不起作用。

您将图像文件夹放在文档根目录之外 - 因此这不起作用。由于它位于文档根目录之外,您的相对客户端 URL 永远不会解析(您实际上是在尝试"高于"http://example.com/)。直接在客户端 HTML 中提供的所有内容都必须位于文档根目录中。(如果您可以从客户端浏览器直接访问 DocumentRoot 上方的文件,那么您将面临巨大的安全漏洞!

但是,服务器端相对文件系统路径(不是 URL)解析正常,因此您可以访问 XML 文件。请注意,在大多数共享服务器环境中,服务器端脚本通常可以访问"文档根目录"上方的 1 个目录。这是"隐藏"服务器端文件的好地方,因为它们不能从浏览器(客户端)直接访问。

您的"图像"目录(您希望直接从HTML访问)应该位于DocumentRoot中,例如。 /var/www/vhosts/project0/html/images .然后,您可以使用文档根目录中的index.php文档中的根相对路径(以斜杠开头)访问图像,因此:

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

最新更新