gpt4 book ai didi

javascript - AngularJs 和 Laravel 中的漂亮 URL 不起作用

转载 作者:行者123 更新时间:2023-11-28 13:25:38 25 4
gpt4 key购买 nike

我正在使用 Laravel 和 AngularJS 开发一个应用程序。对于 AngularJS 漂亮的 URL ,我设置了 $locationProvider.html5Mode(true) 并且它工作正常。但假设我的网址是 http://localhost:8000/demo如果我刷新页面,我会在 Compiled.php 第 7693 行中收到 NotFoundHttpException:

这是我的 Angular 路线。

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 的路由接管。然后,您可以根据每个请求呈现索引 View 。关于如何在 Laravel 5 中做到这一点,这里有一个很好的答案:How do I catch exceptions / missing pages in Laravel 5?

这是伪代码,不会起作用,只是为了展示一个示例:

Route::get('*', function() {
return view('index');
});

因此,在每个请求上渲染索引 View ,然后让 Angular 处理那里的路由。

关于javascript - AngularJs 和 Laravel 中的漂亮 URL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29484665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com