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错误