[英]How to serve multiple static folders in Laravel?
我有三個帶靜態文件的文件夾(Angular apps):web,login,admin。
我想服務:
/*
時的web
文件夾 login
時,URL是/admin/*
和未登錄 admin
為/admin/*
並記錄時為/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
。 我怎樣才能解決以前的問題?
您添加了相同的路由網址2次。 Laravel標准采用一個並跳過另一個。 因此,采用第一個管理路由。 因此,auth過濾器始終有效。 在標准過濾器(位於filters.php文件中)中,未登錄的用戶被重定向到登錄。 因此,您被重定向到登錄。 你可以通過改變過濾器或刪除過濾器來解決這個問題,並在你的路線中使用它:
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); });
->where('slug', '[A-Za-z]+');
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.