开发真的很新,但我无法弄清楚为什么我的相对图像引用不起作用。我在 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">