Laravel应用中img src无法从本地C盘加载图片求助
解决Laravel无法加载本地C盘图片的问题
为什么你的代码不行
浏览器有严格的安全限制,不允许网页直接通过file://协议访问本地文件系统——不管你是本地运行Laravel还是部署到服务器,网页是在浏览器沙箱里运行的,直接读C盘文件会被拦截,这是浏览器的安全机制,防止恶意网页窃取本地文件。
正确的解决方法
方法1:把图片移到Laravel的公共目录
Laravel的public目录是Web服务器对外暴露的根目录,只有放在这里的文件才能通过HTTP协议被访问到:
- 在
public文件夹下新建images目录(比如public/images/) - 把桌面
AISImageFolder里的图片移到这个目录下 - 修改blade里的代码,用Laravel的
asset()辅助函数生成正确的URL:
<img src="{{ asset('images/' . $currentUser->image_path) }}" alt="..." class="w-100 border-radius-lg shadow-sm">
方法2:创建软链接映射本地文件夹(适合不想移动图片的情况)
如果不想把图片移到项目里,可以给Laravel的public目录创建软链接,指向桌面的图片文件夹:
- 打开终端(Windows用PowerShell),进入Laravel项目根目录,执行命令:
New-Item -ItemType SymbolicLink -Path "public/ais-images" -Target "C:\Users\Name\Desktop\AISImageFolder"
- 然后blade里的代码改成:
<img src="{{ asset('ais-images/' . $currentUser->image_path) }}" alt="..." class="w-100 border-radius-lg shadow-sm">
注意:软链接需要管理员权限创建,且部署到服务器时,这种方式仅适用于服务器本地的文件夹,无法访问你本地桌面的文件。
方法3:用Laravel的文件存储系统(更规范的做法)
如果是用户上传的图片,推荐用Laravel的文件存储功能:
- 在
config/filesystems.php里配置磁盘,指向目标文件夹 - 用
Storage::url()生成访问链接,需确保Web服务器有权限访问该目录并配置正确的访问规则。
内容的提问来源于stack exchange,提问作者Genbert C. Dacudao
相关产品推荐
相关产品推荐

