我已经为自己的作业开发了一个应用程序,它基于Vue.js, Laravel
,基于教程,我的问题是基于我学到的教程,我已经编写了这个应用程序,现在我无法访问除了我的应用程序以外的任何路线。
我想创建一个关于页面,当我添加要路由的路由时,它将进入我的spa应用程序的默认页面,这是基于教程进行的,以防止人们在URL中输入废话,例如{{1 }},那么如何在该行中添加阻止我访问其他路由的例外?
代码如下:
url.com/asdasdqwe
因此,当我删除Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/dashboard', 'HomeController@index')->name('dashboard');
// I know this line make my app to force it to don't access other routes like bottom('/about')
// Route::get('{path}',"HomeController@index")->where( 'path', '([A-z\d-\/_.]+)?' );
// Because of top code i can't access other views that's using ('/etcroute')
Route::get('/about', function () {
return view('welcome');
});
行时,我会在SPA应用程序中遇到一些问题。因此,我正在寻找一种添加异常或强制其使这些路由与{path}
行兼容的方法。
答案 0 :(得分:1)
欢迎使用StackOverflow:)
要解决此问题,只需将您的“ /关于”路线放置在与正则表达式匹配的那条路线上。
Laravel按照列出的顺序处理路线,因此您的“ / about”路线不会被看到,因为另一条路线首先与之匹配。
例如:
Auth::routes();
Route::get('/', function () {
return view('welcome');
});
Route::get('/about', function () {
return view('welcome');
});
Route::get('/dashboard', 'HomeController@index')->name('dashboard');
Route::get('{path}', 'HomeController@index')->where('path', '([A-z\d-\/_.]+)?');
答案 1 :(得分:0)
Route::get('dashboard/{any}', [HomeController::class, 'index'])->where(['any' => '.*']);
答案 2 :(得分:0)
像这样改变你的路由排序:
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/dashboard', 'HomeController@index')->name('dashboard');
// Because of top code i can't access other views that's using ('/etcroute')
Route::get('/about', function () {
return view('welcome');
});
Route::get('{path}',"HomeController@index")->where( 'path', '([A-z\d-\/_.]+)?' );
Laravel 路由从 web.php 文件的顶部开始,并逐一检查路由。
因此您必须在静态路由的末尾添加正则表达式。