【问题标题】:Display picture from different dir(than index.html) on my website在我的网站上显示来自不同目录(而不是 index.html)的图片
【发布时间】:2018-06-23 01:26:12
【问题描述】:

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

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

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

我尝试添加或删除“../”,即使我确定上述路径是正确的。

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

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

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

提前问候和感谢,

法尔克

【问题讨论】:

    标签: html permissions raspberry-pi filepath lamp


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 非常感谢,这对我有用,但我必须添加: 需要在别名之后所有授予的 才能使其工作。谢谢你的建议。 (对于那些有类似问题的人,不要忘记:在将代码添加到 httpd.conf(在我的情况下为 apache2.conf)后“sudo service apache2 restart”
    【解决方案2】:

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

    权限也可能是问题,但如果你想从你的 html 中引用它,你需要提供图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多