
在 Laragon 搭建的 Laravel 本地开发环境中,图片无法显示通常源于静态资源路径配置错误;应使用 Laravel 内置的 asset() 辅助函数生成带版本哈希的绝对 URL,而非硬编码相对路径。
在 laragon 搭建的 laravel 本地开发环境中,图片无法显示通常源于静态资源路径配置错误;应使用 laravel 内置的 `asset()` 辅助函数生成带版本哈希的绝对 url,而非硬编码相对路径。
在 Laragon 中运行 Laravel 项目(如 http://localhost/myproject)时,Web 服务器默认将请求路由到项目的 public/ 目录——这是 Laravel 的唯一公开入口。因此,所有前端可访问的静态资源(CSS、JS、图片等)必须位于 public/ 目录下,且其 URL 路径需以 / 开头,相对于 public 目录进行解析。
你提到的两个路径中:
- ✅ C:\laragon\www\myproject\public\img\image.jpg 是合法且可直接访问的资源位置;
- ❌ C:\laragon\www\myproject\resources\img\image.jpg 属于源码目录(用于 Vite/Laravel Mix 编译前),不会被 Web 服务器直接提供,浏览器无法通过 HTTP 访问该路径。
正确引用方式:使用 asset() 函数
Laravel 的 asset() 辅助函数会自动根据当前应用的 APP_URL 和 ASSET_URL 配置,生成指向 public/ 目录下的完整 HTTPS/HTTP URL,并支持缓存 busting(配合 mix() 时)。对于图片,应这样写:
<!-- 在 Blade 模板中 -->
<img src="%7B%7B%20asset('img/image.jpg')%20%7D%7D" alt="My Image" class="rounded">
上述代码将渲染为类似:
⚠️ 注意事项:
- asset() 的参数是从 public/ 目录开始的相对路径,不加前导斜杠(即写 'img/image.jpg',而非 '/img/image.jpg');
- 确保图片真实存在于 public/img/image.jpg,Windows 路径大小写不敏感,但建议保持命名一致性;
- 若使用 Laravel Mix 或 Vite,请将源图片放在 resources/img/,再通过构建命令复制/处理至 public/img/,切勿直接在模板中引用 resources/ 下的路径;
- 如果部署到子目录(如 /myproject),请确认 APP_URL 设置正确(例如 APP_URL=http://localhost/myproject),否则 asset() 可能生成错误的基础路径。
验证与调试技巧
- 直接在浏览器访问 http://localhost/myproject/img/image.jpg —— 若返回 404,请检查文件是否在 public/img/ 下;
- 查看页面源码,确认
的 src 属性是否为预期 URL;
- 运行 php artisan storage:link(仅当使用 storage/app/public 时需要),本例无需此操作。
总之,坚守“所有公开资源入 public/,所有模板引用用 asset()”原则,即可彻底解决 Laragon + Laravel 环境下的图片路径问题。










