Laravel:如何使用Storage::方法读取/resources/modules目录下的JSON文件
解决Laravel中使用Storage读取/resources/modules/目录文件的问题
要通过Storage::方法读取/resources/modules/下的JSON文件,你需要先在文件系统配置中添加自定义磁盘——因为Laravel默认的Storage磁盘均基于storage/app目录,无法直接访问resources目录。
步骤1:配置自定义磁盘
打开项目根目录下的config/filesystems.php,在disks数组中添加以下配置项:
'resources' => [ 'driver' => 'local', 'root' => resource_path('modules'), 'throw' => true, // 可选:开启后读取失败时抛出异常,便于调试 ],
这里resource_path('modules')是Laravel内置的助手函数,会自动拼接出项目resources/modules目录的绝对路径。
步骤2:使用自定义磁盘读取文件
配置完成后,即可像操作public磁盘一样,通过新磁盘读取目标JSON文件:
$this->json_path = Storage::disk('resources')->get('file.json'); $this->config_decoded = json_decode($this->json_path, true);
补充说明
- 若文件存放在
modules的子目录中,直接修改get()的参数即可,例如get('sub-folder/another-file.json')。 - 如需判断文件是否存在,可结合
exists()方法:
if (Storage::disk('resources')->exists('file.json')) { // 执行文件读取逻辑 } else { // 处理文件不存在的场景 }
内容的提问来源于stack exchange,提问作者TWLATL
相关产品推荐
相关产品推荐

