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

Laravel7.3 使用asset()加载public静态资源返回404无法解析

Laravel 7.3 asset()方法加载静态资源404问题排查指南

相关引用代码:

<link href="{{asset('_admin/vendor/fontawesome-free/css/all.min.css')}}" rel="stylesheet" />
<link href="{{asset('_admin/vendor/bootstrap/css/bootstrap.min.css')}}" rel="stylesheet" />

问题截图:
问题截图


排查步骤

1. 校验静态资源物理路径合法性

  • 首先确认项目public目录下存在完整的对应路径:_admin/vendor/fontawesome-free/css/all.min.css、_admin/vendor/bootstrap/css/bootstrap.min.css
  • 注意:Linux/macOS环境下路径大小写敏感,必须和代码中的路径完全匹配
  • 如果静态资源存放在storage/app/public目录下,需要先执行命令创建软链才可访问:
    php artisan storage:link

2. 修正站点根路径配置

  • 打开项目根目录.env文件,检查APP_URL参数是否和实际访问的站点地址完全一致,例如本地测试用http://localhost/项目名/public访问的话,APP_URL需要填写完整路径,不可只填域名
  • 如果站点部署在子目录下,需要修改config/app.php中的asset_url参数,指定子目录路径:
'asset_url' => env('ASSET_URL', '/你的子目录路径/public'),

3. 校验服务器重写规则

Nginx环境

  • 确认站点配置的root参数指向项目的public目录,而非项目根目录
  • 确认配置中包含Laravel官方重写规则:
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

Apache环境

  • 确认public目录下存在默认的.htaccess文件,且Apache已开启mod_rewrite模块
  • 确认站点配置中AllowOverride参数设置为All,允许.htaccess规则生效

4. 直接访问资源验证路径

右键浏览器控制台中404的资源项,复制地址直接在地址栏访问,观察返回的路径是否符合预期:

  • 如果路径中出现重复的public段,说明APP_URL或站点根目录配置错误
  • 如果直接访问对应路径下的其他普通文件也404,说明服务器站点根目录配置错误

内容的提问来源于stack exchange,提问作者user3653474

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:06:08