gpt4 book ai didi

AngularJS:如何从 URL 中删除 #!/(爆炸前缀)?

转载 作者:行者123 更新时间:2023-12-04 05:11:46 24 4
gpt4 key购买 nike

我已经做了$locationProvider.html5Mode(true);但它不工作。每当我访问 http://example.com它转到 http://example.com/#!/ .代码在这里给出:

var myApp = angular.module('myApp', ['ui.router', 'ui.bootstrap']);

myApp.config(['$qProvider', function ($qProvider) {
$qProvider.errorOnUnhandledRejections(false);
}]);

myApp.config(function($stateProvider, $urlRouterProvider,$locationProvider) {
// For any unmatched url, redirect to EXTRANET home page
$urlRouterProvider.otherwise('/');
// Now set up the states
$stateProvider
.state('listrole', {
url: "/list-role",
views: {
'main-content': {
templateUrl: rootUrl+ 'views/main.html',
controller: 'rolesCtrl'
}
}
})
$locationProvider.hashPrefix('');
$locationProvider.html5Mode(true);
});

更新
我添加了 $locationProvider.hashPrefix('');也一样,但没有区别。另外让我告诉你,我在地址栏中输入地址并按回车。我做得对吗?浏览器如何发现它不需要从服务器刷新?

更新 #2

理想情况下,我希望 URL 为 http://example.comhttp://example.com/#!/list-rolehttp://example.com/list-role .现在 http://example.com/list-role给 404

更新#3

如果有帮助,我正在使用 nginx 代理。

更新 #4

已删除缓存。现在我可以看到 http://example.com而不是 http://example.com/#!但仍然 http://example.com/list-role给 404

最佳答案

如果要删除此前缀,请将此代码添加到您的配置中:

appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix('');
}]);

Source here了解更多信息。

更新

如果您想删除整个前缀( # 而不仅仅是 ! ),您可以尝试 this solution :

1)开启HTML5模式,去掉前缀!在你的模块配置中
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('');

2) 然后将基数设置为 /<head>在你的 index.html
<head>
...
<base href="/">
</head>

关于AngularJS:如何从 URL 中删除 #!/(爆炸前缀)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41460772/

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