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

如何修改Laravel存储路径至不含laravel目录的public_html路径?

解决Laravel图片存储路径多带laravel目录的问题

别着急,我来帮你搞定这个路径问题!既然服务商不让用symlink,那咱们直接从Laravel的配置和存储逻辑入手修改,应该就能解决。

1. 修改文件系统配置文件

首先找到Laravel项目里的config/filesystems.php,这是控制存储路径的核心配置文件。你可以直接修改默认的public磁盘,或者单独创建一个专门用于图片存储的磁盘:

'disks' => [
    // 保留其他原有磁盘配置...
    
    // 方法一:修改默认public磁盘的根路径
    'public' => [
        'driver' => 'local',
        'root' => '/home/gehops/domains/anyweb.com/public_html/images/',
        'url' => env('APP_URL').'/images',
        'visibility' => 'public',
    ],

    // 方法二:新增一个专门的images磁盘(推荐,避免影响其他存储逻辑)
    'images' => [
        'driver' => 'local',
        'root' => '/home/gehops/domains/anyweb.com/public_html/images/',
        'url' => env('APP_URL').'/images',
        'visibility' => 'public',
    ],
],

2. 调整上传代码的存储逻辑

修改完配置后,确保你上传图片的代码使用了新配置的磁盘。比如:

// 如果用新增的images磁盘
$uploadedPath = $request->file('image')->store('avatars', 'images');

// 如果修改了public磁盘,就用默认的public磁盘
$uploadedPath = $request->file('image')->store('avatars', 'public');

如果需要指定文件名,就用storeAs方法:

$uploadedPath = $request->file('image')->storeAs(
    'avatars',
    'user_avatar.jpg',
    'images' // 对应你配置的磁盘名
);

3. 清除Laravel配置缓存

Laravel会缓存配置文件,修改完后记得清除缓存让新配置生效:

php artisan config:clear

4. 迁移已有图片(可选)

如果之前已经上传了图片在旧路径里,用命令行把文件移到新目录:

mv /home/gehops/domains/anyweb.com/laravel/public_html/images/* /home/gehops/domains/anyweb.com/public_html/images/

这样调整后,所有新上传的图片都会直接存到你想要的目录里,不会再带laravel前缀了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:49:29