繁体   English   中英

AngularJs和Laravel中的漂亮Urls无法正常工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM