当前位置:首页 > CMS教程 > 其它CMS > 列表

Laravel 项目中在 Laragon 环境下正确引用图片资源的路径解决方案

发布:smiling 来源: PHP粉丝网  添加日期:2026-04-16 19:21:35 浏览: 评论:0 

在 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() 时)。对于图片,应这样写:

  1. <!-- 在 Blade 模板中 --> 
  2. <img src="{{ asset('img/image.jpg') }}" alt="My Image" class="rounded"> 

上述代码将渲染为类似:

<img src="http://localhost/myproject/img/image.jpg" alt="My Image">

注意事项:

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/ 下;

查看页面源码,确认 <img> 的 src 属性是否为预期 URL;

运行 php artisan storage:link(仅当使用 storage/app/public 时需要),本例无需此操作。

总之,坚守“所有公开资源入 public/,所有模板引用用 asset()”原则,即可彻底解决 Laragon + Laravel 环境下的图片路径问题。

Tags: Laravel引用图片 Laragon引用图片

分享到: