2013-10-27 76 views
5

我试图删除使用angularjs html5Mode(true)的url index.html,这是代码:问题与angularjs html5Mode

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);的URL显示:

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

如果我写$locationProvider.html5Mode(true);的URL显示:

本地主机:(端口)

MyApplication被去除的url。 我想要的网址显示:

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

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

UPDATE:

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

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

当我点击的链接,链接显示:

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

我失去了这一点。

提前致谢!

+0

请提供您定义路线的代码。 (你打电话给$ routeProvider.when()) – bekite

+0

@bekite我已经更新了这篇文章,对于延迟抱歉。问候。 – Alavaros

回答

13

如果您的应用程序运行在/MyApplication/尝试设置基本路径在您的index.html和html5Mode切换:

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

Using $location

+0

谢谢,它像魅力一样工作。 – fmquaglia

+0

我期待像'dir/file.jpg'这样的所有hrefs被转换为'/MyApplication/index.html/dir/file.jpg',但令我惊讶的是浏览器正在执行'/MyApplication/dir/file.jpg' – user3338098

+0

w3c似乎没有记录此行为@ http://www.w3.org/TR/html5/document-metadata.html#the-base-element甚至@ http://www.w3.org/ TR/html5/infrastructure.html#resolve-a-url – user3338098