如何为我的spa应用程序对我在laravel的路线破例?

如何为我的spa应用程序对我在laravel的路线破例?,laravel,routes,Laravel,Routes,我已经为我的家庭作业开发了一个应用程序,它基于Vue.js,Laravel,基于教程,我的问题是基于我学到的教程,我已经编写了这个应用程序,现在除了我的应用程序,我无法访问任何路线 我想创建一个about页面,当我添加route to route时,它将进入我的spa应用程序的默认页面,我根据教程这样做是为了防止人们在URL中键入无意义的内容,比如URL.com/asdasdqwe,那么如何在阻止我访问其他路由的行中添加异常呢 代码如下: Route::get('/', function ()

我已经为我的家庭作业开发了一个应用程序,它基于
Vue.js,Laravel
,基于教程,我的问题是基于我学到的教程,我已经编写了这个应用程序,现在除了我的应用程序,我无法访问任何路线

我想创建一个about页面,当我添加route to route时,它将进入我的spa应用程序的默认页面,我根据教程这样做是为了防止人们在URL中键入无意义的内容,比如
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');
});
所以当我删除
{path}
行时,我会在SPA应用程序中遇到一些问题。因此,我正在寻找一种添加异常或强制异常的方法,让这些路由与
{Path}
行一起工作。

欢迎使用StackOverflow:)

要解决这个问题,只需将“/about”路径放在与正则表达式匹配的路径上方

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-\/_.]+)?');

路由::get('dashboard/{any}',[HomeController::class,'index'])->其中(['any'=>'.']])

更改您的路线排序如下:

路由::get('/',函数(){ 返回视图(“欢迎”); }); Auth::routes(); 路由::获取('/dashboard','HomeController@index')->名称(“仪表板”); //由于顶层代码,我无法访问正在使用(“/etcroute”)的其他视图 路由::get('/about',函数(){ 返回视图(“欢迎”); }); 路由::获取(“{path}”,“HomeController@index“”->其中('path','([A-z\d-\/.]+)?); Laravel路由从web.php文件的顶部开始,并逐个检查路由


因此,您必须在静态路由的末尾添加regex。

您是否尝试过将/about路由代码置于/{path}路由代码之上?@tarekaddam nah,我不知道路由中的行的优先级。谢谢