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

Laravel Folio 10:如何直接访问public文件夹中的图片或文件?

解决Folio 10下public/images文件直接访问404的问题

方案1:配置Folio排除/images路径

Folio默认会尝试解析所有URL为文件系统路由,导致/images请求被错误路由。通过在Folio初始化时添加排除规则,让Laravel接管静态文件处理:

在bootstrap/app.php的路由配置中,添加exclude('/images'):

use Laravel\Folio\Folio;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        // 保留原有web、commands等路由配置
        then: function () {
            Folio::path(base_path('resources/views/pages'))
                ->exclude('/images'); // 排除images前缀的请求,交由Laravel处理静态文件
        },
    )
    // 保留原有中间件、异常配置
    ->create();

配置后,Folio会忽略所有/images开头的请求,Laravel会自动从public/images目录查找对应文件并返回。

方案2:手动添加路由处理静态资源

如果方案1不生效,可在routes/web.php中添加显式路由,优先匹配/images请求:

use Illuminate\Support\Facades\Route;

Route::get('/images/{path}', function (string $path) {
    $file = public_path("images/{$path}");

    if (!file_exists($file)) {
        abort(404);
    }

    return response()->file($file);
})->where('path', '.*');
  • ->where('path', '.*')允许匹配包含子目录的路径(如/images/photos/shot.jpg)
  • 该路由会优先于Folio的文件系统路由执行,确保静态资源被正确返回

关键验证步骤

  1. 确保public/images目录及文件的服务器读取权限正常
  2. 执行php artisan route:clear清除路由缓存,避免旧规则干扰
  3. 删除或重命名resources/views/pages下可能存在的images.blade.php或images目录,防止Folio误解析

内容的提问来源于stack exchange,提问作者Jay Bienvenu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:27:36