gpt4 book ai didi

javascript - AngularJS $routeProvider 无法直接加载到部分

转载 作者:行者123 更新时间:2023-11-28 07:56:33 24 4
gpt4 key购买 nike

目前我正在使用 $routeProvider 动态加载页面的各个部分,如下所示:

$routeProvider
.when('/', {
templateUrl: '/pages/home.html',
controller: 'mainController'
})
.when('/our-business', {
templateUrl: '/pages/our-business.html',
controller: 'businessController',
css: 'css/_business.css'
})
.when('/solutions', {
templateUrl: '/pages/solutions.html',
controller: 'solutionsController'
});

目前,如果我直接访问索引 (localhost),然后从导航菜单中选择“我们的业务”,那么 Angular 会处理位置请求并且页面加载正常,URL 会更改为 localhost/our-业务。。如果我随后重新加载或直接打开此 URL,我会收到 404 错误 - 可能是因为 Apache 正在尝试打开不存在的 our-business.html。如果我打开localhost/#/our-business,那么索引就会被加载,然后 Angular 就会处理请求。我遇到的问题是,这是一个面向公众的网站,因此如果用户复制并粘贴 URL 或通过电子邮件共享它,他们将收到 404 错误。

有没有办法让 Apache 重写 URL 通过索引和 AngularJS 来解析它们,这样我们就可以保留非哈希风格,但仍然拥有功能性 URL?

最佳答案

正如 Kailash 所说,您可以将 locationProvider 设置为 html5 模式

$locationProvider.html5Mode(true)

当您引导 Angular 应用程序时。

然后,您必须告诉您的 Apache 服务器发送任何请求的 url 的 index.html(单页应用程序的入口点)。

Angular 路由器将处理正确的路线

关于javascript - AngularJS $routeProvider 无法直接加载到部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26015248/

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