403 从公共/图像文件夹 laravel vuejs xampp 加载图像时禁止

Posted

技术标签:

【中文标题】403 从公共/图像文件夹 laravel vuejs xampp 加载图像时禁止【英文标题】:403 Forbidden when loading images from public/image folder laravel vuejs xampp 【发布时间】:2020-03-02 12:49:56 【问题描述】:

在我的个人资料中,图像完美显示,但我在控制台中收到以下错误。如果我尝试从公用文件夹访问图像,它不会向我显示错误,但如果我尝试从作为子文件夹的图像文件夹访问它,则会显示错误。自从我搜索 4 天以来,任何人都可以帮助我解决这个问题解决方案,但我没有找到任何解决方案,但他会那么好。

禁止访问!您无权访问请求的 目录。没有索引文档或目录是 读保护。

如果您认为这是服务器错误,请联系网站管理员。

错误 403 admin-cms.me Apache/2.4.39 (Win64) OpenSSL/1.0.2s php/7.1.31

我的 API 代码是:

Route::get('profile','API\UserController@profile');

我的控制器代码是:

 public function profile()
    
        //
        return auth('api')->user();
    

我的数据和方法代码是:

  data() 
    return 
      users: ,
      form: new Form(
        id: "",
        name: "",
        email: "",
        password: "",
        type: "",
        bio: "",
        photo: ""
      )
    ;
  ,

methods: 
    getProfilePhoto() 
      return "image/" + this.form.photo;
    

我在 profile.vue 中的 HTML 代码是:

<div class="widget-user-image">
            <img class="img-circle" :src="getProfilePhoto()"  />
          </div>

【问题讨论】:

【参考方案1】:

您确定this.form.photo 在调用getProfilePhoto() 时有一个值吗?

错误信息:

没有索引文档或目录被读保护

让我觉得getProfilePhoto() 正在返回'image/' + '',这导致图像目录试图被索引。

一种选择是仅在this.form.photo 具有值时显示个人资料照片,使用v-if

<div class="widget-user-image">
    <img class="img-circle" v-if="form.photo" :src="getProfilePhoto()"  />
</div>

【讨论】:

是的,因为在页面加载时我正在填写表单,并且在加载时显示图片但仍然出现错误 Brice 先生,您能告诉我应该怎么做或怎么做吗 我已经编辑了我的答案以显示一个可能的前进方向:隐藏个人资料照片,直到 this.form.photo 具有价值。【参考方案2】:

可能是权限问题,您是否有权访问您的公共目录,如果可以,您可以检查您的权限吗?即:

ls -li public

现在检查 www-data 或 nginx 是否对您的 image 文件夹具有允许读取权限。

【讨论】:

模式 LastWriteTime 长度名称 ---- ------------- ------ ---- d----- 11/6/2019 12:31 AM CSS d----- 11/6/2019 12:31 AM 字体 d----- 11/6/2019 1:19 AM 图片 dr--- 11/6/2019 10:16 AM图片 主要问题是当图像在 public/img 中时,如果我将其从子文件夹中取出,它会给我错误,它不会给我错误 那么img 文件夹不可访问,为确保它也可以公开访问,您可以尝试更改它的权限:sudo chmod ugo+w public/img sudo :术语“sudo”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,

以上是关于403 从公共/图像文件夹 laravel vuejs xampp 加载图像时禁止的主要内容,如果未能解决你的问题,请参考以下文章

从 vue 组件的公共文件夹中导入 js 文件(Laravel)

在 Laravel 8 中更新图像后如何从公共文件夹中删除图像

joomla公共服务器上的css、js文件和图像出现403错误

未找到 Laravel 公共存储文件夹

使用 AFNetworking 从 S3 获取公共文件并接收 403

如何将 laravel vue 站点部署到共享主机