Angularjs Laravel怎么能忽略除某个前缀之外的所有内容?

Angularjs Laravel怎么能忽略除某个前缀之外的所有内容?,angularjs,laravel,routes,Angularjs,Laravel,Routes,我的angular应用程序运行在我的laravel路线之外/ 我在/api下还有其他所有内容 我希望能够在angular中启用html5模式并保持SPA式路由,但当我这样做时,laravel捕捉到了路由 那么,我怎样才能让laravel路由器忽略除api和初始路由之外的所有内容呢 使用Laravel5.2,您需要有一个全面的路由来呈现每个请求的索引视图,然后让Angular处理路由。记住,你还需要在Angular应用程序中创建404页等 // API routes here // Catch-

我的angular应用程序运行在我的laravel路线之外/

我在/api下还有其他所有内容

我希望能够在angular中启用html5模式并保持SPA式路由,但当我这样做时,laravel捕捉到了路由

那么,我怎样才能让laravel路由器忽略除api和初始路由之外的所有内容呢


使用Laravel5.2,您需要有一个全面的路由来呈现每个请求的索引视图,然后让Angular处理路由。记住,你还需要在Angular应用程序中创建404页等

// API routes here

// Catch-all route to point everything to index page
Route::get('{something}', function() {
    return view('index');
});
关于API路由,您需要将这些路由放在catch-all路由之上,以便它们返回API响应

角度布线

您使用的是角度1还是角度2?你用的是什么角度路由器?e、 g.使用Angular1使用
$location
false
作为第二个参数添加到
path

$location.path('/some-path/', false);

我认为你可以做到以下几点:

// Catch any routes except 'api'
Route::any('{all}', 'InitController@index')->where('all','^((?!api).)*?');

这不管用。它仍然在RouteCollection.php第161行中显示route NotFoundHttpException:typo-根据更新的回答,将
*
替换为
{something}
,这样就行了。但现在的行为与aleksejj的建议相同。每个链接都会重新加载angular@JasonSpick嗯,你的角路线是怎么运作的?不久前我也有类似的任务。所以,当用户在浏览器中点击
site.com/any/path/here
时,他们会收到基本模板。然后angular开始处理任何路径,并请求
api
路由以获取任何数据。类似于
。当('/any2/path2/here2',{templateUrl:'some/url',controller:'someController'})时,在这种情况下不需要重新加载整个页面。