2016-11-23 39 views
0

我正在寻找在Angular 1.5中编写链接和路径的最佳实践。使用html5模式编写链接(路径,href)的角度最佳实践

考虑以下配置:

angular.module('my-app', ['ngRoute']) 
    .config(function ($locationProvider) { 
     $locationProvider.html5Mode({enabled: true}); 
    }); 

这时候我已经在HTML文档中基本参考不起作用:

<html> 
    <head> 
     <base href="/my-app/"/> 
     ... 
    </head> 
    <body> 
     <a ng-href="/my-section">My section</a> 
    </body> 
</html> 

点击链接放我在绝对URL /我的 - 部分,它不存在。这同样适用于位置服务:

$location.path('/my-section') // Change my url at /my-section, not /my-app/my-section 

容易地把它与相对的人更换我的所有链路具有的效果或重定向我/我的应用程序内/我的截面相应固定:

<a ng-href="my-section">My section</a> 
$location.path('my-section') 

然而,根据$位置服务的文档:

路径应始终以正斜杠(/)开始,该方法将增加 斜杠如果它缺少。 https://docs.angularjs.org/api/ng/service/ $ location

这基本上告诉我,建议是用正斜杠开始所有的链接。在我的情况下这可能如何?

回答

0

我认为如果你的应用索引看起来像'http://example.com/',你应该只给出'/'作为基础href。

如果您的索引网址看起来像'http://example.com/my-app/',那么基准href值就是'/ my-section'。

实际上,它取决于索引页的url。所以,请通过这种方式:)

+0

所以,你所提出的建议,每部分都使用一个基本href? –

0
<html> 
    <head> 
      <base href="/"></base> 
     ... 
    </head> 
    <body> 
     <a ng-href="my-app/my-section">My section</a> 
    </body> 
</html> 

设置基本URL去,因为斜线

+0

这将是一个好主意,但我不使用状态路由器。 –

+0

修改我的答案。请注意 –