You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10 数据表链接存储文件夹PDF文件时出现404错误

Laravel 10 数据表链接存储文件夹PDF文件时出现404错误

嘿,我来帮你搞定这个404问题,看起来主要是存储路径映射和Blade语法错误这两个点导致的,咱们一步步来修复:

1. 先解决存储目录的Web访问权限问题

Laravel里storage/app/public目录的文件默认无法直接通过Web访问,需要先创建一个软链接,把这个目录映射到项目的public/storage目录,这样Web服务器才能读取到里面的文件。

在终端运行这个Artisan命令:

php artisan storage:link

如果之前已经创建过但链接失效了,可以先删除项目根目录下的public/storage文件夹,再重新运行上面的命令。

2. 修正视图里的链接路径和Blade语法

你之前犯了两个小错误:

  • 路径错误:软链创建后,正确的Web访问路径应该是/storage/pdf/文件名,而不是/storage/app/public/pdf/文件名
  • Blade语法错误:使用asset()或url()时,不能在{{ }}里再嵌套{{ }},直接用字符串拼接变量就行

把表格里的PDF链接代码改成下面这样:

<td><a href="{{ asset('storage/pdf/' . $report_archive->reportLink) }}" target="_blank">{{ $report_archive->reportLink }}</a></td>

或者用url()的写法也可以:

<td><a href="{{ url('storage/pdf/' . $report_archive->reportLink) }}" target="_blank">{{ $report_archive->reportLink }}</a></td>

3. 最后验证几个细节

  • 确认PDF文件确实存在于storage/app/public/pdf目录下,且文件名和数据库里的reportLink完全一致(注意Linux服务器区分大小写,别写错文件名)
  • 本地开发的话,清理浏览器缓存或者用隐私模式打开页面,避免旧的缓存路径干扰
  • 检查Web服务器的根目录是否指向项目的public文件夹,确保public/storage软链能被正确识别

这样修改后,应该就能正常打开PDF文件了!

备注:内容来源于stack exchange,提问作者Maranda Dominguez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:38:02