我有一个使用AngularJS构建的网站。我使用$ routeProvider来定义一堆路由。当我在网站上时,它们都工作正常。我们采取以下措施: rooturl.com#/服务/服务名
当网站已经打开时,在&#34;#/&#34;的主页上,然后一切正常,它会路由到rooturl.com#/ services / myservicename并加载正确的内容。< / p>
现在,假设我打开一个新的浏览器,将rooturl.com#/ services / myservicename粘贴到地址栏中,我会访问我的网站,但是我被转到了#34; /&#34;而不是rooturl.com#/ services / myservicename。
它与此基本相同: AngularJS routes with parameters in path not loading in HTML5 mode when going directly to URLs ...除了我没有这一行,所以我不确定关于$ locationProvider文档的讨论是否适用于我?
$locationProvider.html5Mode(true);
此外,我在公司内部网上。我将无法访问服务器。在我的角度网站的代码中,我可以做任何客户端的事情,允许用户在地址栏中输入rooturl.com#/ services / myservicename,并始终到达该路线吗?
请注意确定哪个代码对答案更重要,但这是我在应用程序定义中的.config。其后的其余代码是控制器和服务。
app.config(function($routeProvider){
$routeProvider
.when('/',
{
templateUrl: 'app/partials/home_tpl.html',
controller: 'HomeCtrl'
})
.when('/support/:subject',
{
templateUrl: 'app/partials/support-process.html',
controller: 'SupportProcessCtrl'
})
.when('/support/:subject/:topic',
{
templateUrl: 'app/partials/support-process.html',
controller: 'SupportProcessCtrl'
})
.when('/projects',
{
templateUrl: 'app/partials/project_list_tpl.html',
controller: 'ProjectsCtrl'
})
.when ('/site-help',
{
templateUrl: 'app/partials/site-help.html'
})
.otherwise(
{
templateUrl: 'app/partials/404.html'
})
});
答案 0 :(得分:0)
html5模式为true允许您省略路线中的#。
看起来您可能错过了网址的斜杠。
rooturl.com#/服务/服务名
应该是
rooturl.com /#/服务/服务名