阻止 Laravel 加载新的 URL 并让 angular 处理它
Stop Laravel from loading new URL and let angular handle it
所以,当我导航到 URL 时,我打开了一个单页 angular 应用程序。如果我使用这些链接,则可以在应用程序内四处移动 - 新的 URLs 加载就可以了。但是,如果我在浏览器 URL window 中输入一个新的 URL 并按回车键,后端框架 - 在我的例子中是 Laravel - 会尝试解析 URL.
我该怎么做
拦截 URL 更改,以便我可以简单地将其定向到应用程序中的适当状态
告诉 Laravel 忽略新的 URL 并让 angular 应用处理它
谢谢
如果我对你的问题的理解正确,你不希望 Laravel 处理它,因为路由是在 javascript 中定义的,而不是在服务器端。如果是这种情况,你可以简单地使用通配符来解决它。
假设在您的 laravel 路线中,您有这条线来加载您的应用程序、视图、javascripts 等:
Route::get('/', 'PagesController@index');
您可以使用通配符修饰符忽略附加的任何 url,并始终提供您的索引视图:
Route::get('/{any?}', 'PagesController@index')->where('any', '.*');
我不确定为什么它不在最新文档中,但您可以找到文档 at Laravel 5.2 doc regarding regular expression constraints
所以,当我导航到 URL 时,我打开了一个单页 angular 应用程序。如果我使用这些链接,则可以在应用程序内四处移动 - 新的 URLs 加载就可以了。但是,如果我在浏览器 URL window 中输入一个新的 URL 并按回车键,后端框架 - 在我的例子中是 Laravel - 会尝试解析 URL.
我该怎么做
拦截 URL 更改,以便我可以简单地将其定向到应用程序中的适当状态
告诉 Laravel 忽略新的 URL 并让 angular 应用处理它
谢谢
如果我对你的问题的理解正确,你不希望 Laravel 处理它,因为路由是在 javascript 中定义的,而不是在服务器端。如果是这种情况,你可以简单地使用通配符来解决它。
假设在您的 laravel 路线中,您有这条线来加载您的应用程序、视图、javascripts 等:
Route::get('/', 'PagesController@index');
您可以使用通配符修饰符忽略附加的任何 url,并始终提供您的索引视图:
Route::get('/{any?}', 'PagesController@index')->where('any', '.*');
我不确定为什么它不在最新文档中,但您可以找到文档 at Laravel 5.2 doc regarding regular expression constraints