在angularjs中使用html5Mode的问题

时间:2013-10-27 10:58:33

标签: html5 url angularjs location-provider

我正在尝试使用angularjs中的index.html删除网址的html5Mode(true),这是代码:

angular.module('myApp', [
  'ngRoute',
  'myApp.filters',
  'myApp.services',
  'myApp.directives',
  'myApp.controllers'
]).
config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
  $locationProvider.html5Mode(true);
  $routeProvider.when('/home', {templateUrl: 'views/home.html'});
  $routeProvider.when('/about', {templateUrl: 'views/about.html'});
  $routeProvider.otherwise({redirectTo: '/'});
}]);

如果我不写$locationProvider.html5Mode(true);,网址会显示:

  

本地主机:(端口)/MyApplication/index.html

如果我写$locationProvider.html5Mode(true);,则网址显示:

  

本地主机:(端口)

MyApplication已删除网址。 我想要网址显示:

  

本地主机:(端口)/所有MyApplication /

我做错了什么?有什么问题?

更新:

应该如何显示我的<a>标签?现在我有:

<a href="#/about">About</>

当我点击链接时,网址会显示:

  

本地主机:(端口)/MyApplication/index.html#/about

我迷失了。

提前致谢!

1 个答案:

答案 0 :(得分:13)

如果您的应用程序在/MyApplication/下运行,请尝试在index.html中设置基本路径,然后启用html5Mode

<html>
  <head>
    <base href="/MyApplication/index.html" />
    ...

请参阅Using $location