我有一个问题,我似乎无法使用Nova作为编辑网站的后端进行修复。我通过完美的配置将/ nova的路径重命名为/ backend。
现在我的前端需要非常通用的路由结构,因为大多数逻辑都放置在控制器中,从而为用户提供了更多的灵活性。
将这些路由添加到Web路由后,后端将转到404。显然,我的第二条规则与/ backend匹配,并且由于数据库中没有该名称的页面,因此失败。
我该怎么做才能确保首先解析Nova的路由,或者我的路由会忽略/ backend请求?
Laravel v5.7。尝试了通常的技巧-php artisan config:clear,php artisan route:clear-以及向该路由添加正则表达式:
->where('seite', '^(?!backend).*$');
当前的网络路由文件:
Route::get('/', 'PagesController@frontPage');
Route::get('/{seite}/{zweit?}/{dritt?}', 'PagesController@anyPage');
/后端应该由Nova处理,而不是我的自定义路由。
答案 0 :(得分:0)
我的路由文件中的通用子弹也有类似的问题。我设法将子弹的模式限制为字母数字字符(包括破折号,连字符和斜杠*),但排除了Nova路由(nova-api
和nova-vendor
)以及自定义的Nova路径({ {1}}。
backend
文件的外观如下:
routes/web.php
还有Route::get('/{seite}', 'PageController@anyPage');
中RouteServiceProvider
中的模式:
app/Providers/RouteServiceProvider.php
*)请注意,此模式还允许像上面问题中所示的public function boot()
{
Route::pattern('seite', '^(?!backend|nova-api|nova-vendor).[a-zA-Z0-9-_\/]+$');
parent::boot();
}
之类的弹头。
答案 1 :(得分:0)
所以最终是这样的:
->where('seite', '^(?!backend).*$');
在我先前尝试使其工作时,我必须破坏了其他东西。我在Nova中完成了Laravel的重新安装,将其移到文件上并添加了regex,现在它就像一个魅力。