gpt4 book ai didi

php - 如何在 Laravel 中提供多个静态文件夹?

转载 作者:搜寻专家 更新时间:2023-10-31 20:39:24 24 4
gpt4 key购买 nike

我有三个包含静态文件的文件夹(Angular 应用程序):web、login、admin。

我要服务:

  • web 文件夹,当 URL 为 /*
  • login 当 URL 为 /admin/* 且未登录时
  • admin 当 URL 为 /admin/* 并记录时。

我的routes.php:

    // admin folder    Route::get('/admin', ['before' => 'auth', function()    {        return File::get(public_path() . '/admin/index.html');    }]);    Route::get('/admin/{slug}', ['before' => 'auth', function($slug)    {        return File::get(public_path() . '/admin/' . $slug);    }]);    //login folder    Route::get('/admin', function()    {        return File::get(public_path() . '/login/index.html');    });    Route::get('/admin/{slug}', function($slug)    {        return File::get(public_path() . '/login/' . $slug);    });    // web folder    Route::get('/', function()    {        return File::get(public_path() . '/web/index.html');    });    Route::get('/{slug}', function($slug)    {        return File::get(public_path() . '/web/' . $slug);    });

问题:

  • /{slug} 不提供子文件夹中的文件。
  • 当我没有登录时,/admin/ 将我重定向到 /login
  • 必须有办法用正则表达式编写此路由。

如何解决前面的问题?

最佳答案

  • 不知道你的第一点有什么问题。可能的问题:
    • 您输入扩展名作为 slug,例如 slug.html。在这种情况下,标准的 laravel htaccess 会尝试搜索不存在的文件。所以 laravel 没有启动!要解决此问题,您可以更改 htaccess 或不在您的路径中使用扩展程序。
  • 您已经添加了 2 次相同的路由 url。 Laravel 标准采用一个并跳过另一个。因此,采用第一个管理路由。因此 auth 过滤器总是被执行。在位于 filters.php 文件中的标准过滤器中,未登录的用户将被重定向到登录。因此,您将被重定向到登录。您可以通过更改过滤器或删除过滤器来解决此问题,例如在您的 route 使用它:

    Route::get('/admin',function()
    {
    if(Auth::check())
    return File::get(public_path() . '/admin/index.html');
    return File::get(public_path() . '/login/index.html');
    });

    Route::get('/admin/{slug}',function($slug)
    {
    if(Auth::check())
    return File::get(public_path() . '/admin/' . $slug);
    return File::get(public_path() . '/login/' . $slug);
    });
  • 如你所见here你可以使用正则表达式。例如 ->where('slug', '[A-Za-z]+');

希望这对您有所帮助!

关于php - 如何在 Laravel 中提供多个静态文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26821873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com