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

部署Laravel项目时静态资源路径为什么需要添加public前缀?

Laravel资源路径需加/public前缀问题解决方案

核心原因

你的Web服务器站点根目录配置错误,指向了Laravel项目根目录而非框架要求的public目录,这是你被迫移动index.php到根目录、资源路径需要额外加/public前缀的根本原因,该配置还存在安全风险:Laravel根目录下的.env等敏感配置文件会被直接公开访问。
本地环境使用php artisan serve启动服务时默认会将public作为服务根目录,所以本地资源路径无需加前缀,和服务器配置不一致导致出现路径差异。

修复步骤

  • 修正Web服务器站点根目录配置:
    • Nginx环境:修改站点配置中的root参数,指向Laravel项目的public目录,示例:root /var/www/your-project/public;
    • Apache环境:修改VirtualHost配置中的DocumentRoot参数,指向项目的public目录
    • 面板类环境(宝塔、cPanel等):在站点设置的「运行目录/根目录」选项中选择public目录
  • 恢复Laravel默认目录结构:将你移动到项目根目录的index.php移回public目录,还原server.php和index.php的原有配置,不要手动修改框架默认的入口文件
  • 统一资源引用规范:
    • Blade模板中引用静态资源统一使用Laravel自带的asset()辅助函数,示例:<link href="{{ asset('css/app.css') }}" rel="stylesheet">,框架会自动拼接正确的站点根路径
    • CSS文件内的资源引用使用相对路径即可,示例:background: url(../assets/images/curve.webp) !important;,无需写绝对路径避免前缀错误

验证效果

配置完成后重启Web服务器,访问站点无需再加/public前缀即可正常加载所有资源,同时也修复了敏感文件暴露的安全隐患。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:09:00