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

Laravel 11跨目录资源访问异常问题求助

Laravel 11 静态资源路径配置问题解决

问题背景

使用Laravel 11,出于安全考虑将public目录移出主项目目录,当前目录结构如下:

/root
  /main
    /app
    /bootstrap
    /config
    /database
    /resources
    /routes
    /...

图片存储在root/main/public/assets/img/packages/img.jpg,期望通过http://web.test/assets/img/packages/img.jpg访问,但系统实际尝试从root/assets/img/packages/img.jpg获取资源,路径匹配错误。

尝试过的方案

  1. 自定义文件存储驱动
    在配置中添加自定义驱动,指定资源根目录:
'custom_assets' => [
    'driver' => 'local',
    'root' => public_path('assets'),
],
  1. .htaccess 配置
    主机使用LiteSpeed服务器,无法修改服务器配置,尝试通过.htaccess重写规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

但配置后出现403错误。

问题根源与解决

最终发现问题出在.htaccess文件的编辑上:使用VSCode编辑时,插件自动将规则合并为单行,导致重写规则失效:

<IfModule mod_rewrite.c>
RewriteEngine On RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

改用记事本编辑.htaccess,恢复规则的分行格式后,配置生效,资源可以正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:49:54