[英]Pretty Urls in AngularJs and Laravel not working
我正在使用Laravel和AngularJS开发应用程序。 对于AngularJS漂亮的URL,我设置了$ locationProvider.html5Mode(true),并且工作正常。 但是,假设我的网址是http:// localhost:8000 / demo,并且如果刷新页面,则会在Compiled.php第7693行中收到NotFoundHttpException:
这是我的角度路线。
function($routeProvider,$locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.
when('/', {
templateUrl: 'partials/index.html',
controller: 'indexController'
}).
when('/dom',{
templateUrl:'partials/dom.html',
controller:'DomController'
}).
when('/demo',{
templateUrl:'partials/demo.html',
controller:'DemoController'
});
}]);
这是我的laravel路线。
Route::get('/', function(){
return view('index');
});
我将不胜感激。 谢谢!
这里的问题是,刷新页面时,Web服务器将获取http:// localhost:8000 / demo ,并尝试处理请求。 尚不知道您希望使用html5路由。 因此它将解析该请求,说“哦,我应该将此传递给public/index.php
并完成它”。 然后public/index.php
将收到它并抛出错误,因为该路径在Laravel中不存在。
您需要做的是在Laravel中捕获所有类型的路由,然后让Angular的路由接管。 然后,您将在每个单个请求上呈现索引视图。 SO在Laravel 5中有一个很好的答案: 如何在Laravel 5中捕获异常/丢失的页面?
这是伪代码,将不起作用 ,仅显示一个示例:
Route::get('*', function() {
return view('index');
});
因此,在每个请求上呈现索引视图,然后让Angular从那里处理路由。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.