对于网络开发来说真的很陌生,但我无法弄清楚为什么我的相对图像参考不起作用。我在DocumentRoot [/ var / www / vhosts / project0 / html /]中有我的index.php,有一个单独的文件夹,我放了我的图像[/ var / www / vhosts / project0 / images /]。我查看了权限,它们似乎没问题;请参阅下面的[/ var / www / vhosts / project0 /]中的ls -l输出:
我的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从images /复制到html /进行调试。
我在VirtualBox上运行Xbuntu,Apache2作为Web服务器。
如果你可以提供帮助,或指出我正确的方向,那就太好了。
干杯,
艾登
额外细节:
project0.conf extract:
<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>
答案 0 :(得分:2)
我的相对图片参考不起作用。
你有文件根目录外的图像文件夹 - 所以这不起作用。如果它位于文档根目录之外,那么您的相对客户端 URL 永远不会解决(您实际上是在&#34;以上&#34; http://example.com/
)。您在客户端HTML中直接提供的所有内容都必须位于文档根目录中。 (如果您可以从客户端浏览器直接访问DocumentRoot上方的文件,那么您将面临巨大的安全漏洞!)
但是,服务器端相对文件系统路径(不是URL)可以解析,因此您可以访问XML文件。请注意,在大多数共享服务器环境中,服务器端脚本通常可以访问&#34;文档根目录&#34;上方的1个目录。这是一个隐藏&#34;的好地方。您的服务器端文件,因为它们无法从浏览器(客户端)直接访问。
你的&#34;图像&#34;目录(您想直接从HTML访问)应该在DocumentRoot中,例如。 /var/www/vhosts/project0/html/images
。然后,您可以使用文档根目录中的index.php
文档中的根相对路径(以斜杠开头)访问图像,这样:
<img src="/images/P001.jpg">