在我的网站上显示来自不同目录(比 index.html)的图片

Display picture from different dir(than index.html) on my website

我已经在 LAMP(MP 暂时不重要)堆栈上 raspberry pi 上建立了一个网站。 该网站应显示位于与 index.html 所在目录不同的目录中的图片。index.html 在系统打开的同一张卡上,而图片在 USB 上连接到服务器。

这是结构: INDEX 的结构:/var/www/newdir1/newdir2/index.html 图片的结构:/disk/newdir3/newdir4/picture.png

我使用的文件路径是: img src="../../../../disk/newdir3/newdir4/picture.png" alt="picture" id="someid" /

我尝试添加或删除“../”,尽管我确信上述路径是正确的。

我将与我一起工作的用户(比如说 "demo")添加到 www-data 组并将 newdir2 和 newdir4 的权限更改为 demo:www-data。但这似乎也不是解决方案。

我仍然相信它与权限有关。

我的两个问题是: 它真的与权限有关吗? 如果是这样,我该如何更改权限才能使其正常工作? 如果不是,与什么有关? (我知道是三个问题,但必须只回答两个)

提前问候和感谢,

福尔克

Apache(LAMP 中的 A)正在通过 http 提供您的 html 文件,但它可能只提供 /var/www 目录。要引用来自 html 的图像,图像也必须通过 http 提供,但 Apache 可能不提供它。

权限也可能是个问题,但如果您想从 html 引用图像,则需要提供图像。

Apache 只允许每个主机有一个 "root" 目录(称为 DocumentRoot)。您的设置可能设置为 /var/www/,因此无论权限如何,尝试访问任何外部内容都无法正常工作。

针对您的用例解决此问题的最佳方法可能是将 Alias 添加到您的 Apache 配置中。在你的 httpd.conf 文件中有这样的东西:

Alias "/img" "/disk/newdir3/newdir4"

这样你的 html 就可以只包含 img src="/img/picture.png".

另一种方法是将您的图片目录符号链接到您的 /var/www 目录中。有关详细信息,请参阅 Apache 手册的 this section