【发布时间】:2019-06-24 23:17:11
【问题描述】:
在我决定将前端文件移到前缀 (/crm) 后面之前,我一直成功地为我的根路径 (/) 使用路由通配符。之后我得到 404 并且不知道如何解决它。我需要通配符作为我的 Javascript 前端路由 (/crm/orders/details/12345) 的全部内容,否则会导致 404。
因此,当我删除 prefix('crm') 时,使用以下代码设置的所有内容都可以正常工作。或者当我删除 {any} 加上匹配的正则表达式时,它在一级深度路由上部分工作(/crm 工作,但 /crm/orders em> 没有)。
但是当我同时拥有前缀和通配符时 /crm 会给我一个 404。
我需要如何配置?
作品
Providers/RouteServiceProvider.php:
Route::namespace('App\Http\Controllers')
->group(base_path('routes/crm.php'));
路由/crm.php
Route::get('/{any}', function ()
{
return view('crm');
})->where('any', '.*');
不工作
Providers/RouteServiceProvider.php:
Route::prefix('crm')
->namespace('App\Http\Controllers')
->group(base_path('routes/crm.php'));
路由/crm.php
Route::get('/{any}', function ()
{
return view('crm');
})->where('any', '.*');
php artisan route:list的输出如下
| Domain | Method | URI |Name | Action | Middleware |
*snap*
| | GET|HEAD | crm/{any} | | Closure | |
*snap*
【问题讨论】:
-
当路由不工作时你能发送
php artisan route:list的输出吗 -
是的,我已经更新了我的帖子。路线列在那里。
-
假设它是一个后端级别的 404 错误,它是一种有线行为。如果您将
{any}参数设为可选参数,如{any?},会怎样。只是在黑暗中拍摄。 -
没有解决,看我对下面帖子的回答
标签: php laravel laravel-routing