从本地文件系统提供站点时,角度视图是否有效?

时间:2013-10-21 19:24:13

标签: angularjs angularjs-routing

我正在使用angular来开发一个应用程序。我正在开发我的本地文件系统,在Windows上。但是,当我启用angular-route.js时,只要我使用浏览器点击index.html,就会转到index.html#/C:/

我的路线定义是:

myApp.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/', {templateUrl: 'home.html', controller: 'HomeCtrl'});
}

我认为这导致网站中断,因为/C:/与任何角度路线都不匹配。出了什么问题?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

路由& ajax(& more)正常工作,运行本地开发服务器;避免使用file://进行开发,因为浏览器对它有不同的规则。

yeoman + generator-angular等工具会自动设置一个带有server任务的gruntfile,该任务将运行node-connect服务器以在本地为您的文件提供服务。

您可以使用

执行此操作
  • python:(3)python -m http.server 8001(用2中的SimpleHttpServer替换http.server)
  • node.js + connect
  • ruby + rack
  • 来自angularjs教程(number 5 under "working with the code") - “您需要在系统上运行http服务器,但如果您还没有已安装的服务器,则可以使用node来运行scripts \ web-server。 js,一个简单的捆绑式http服务器。“

评论回复:对于phonegap,请使用the phonegap tools。它完全符合我的说法,它运行local server.

答案 1 :(得分:3)

这样可行。

angular.module('MainModule', []).config(function($locationProvider, $routeProvider) {
    $locationProvider.hashPrefix("!");
    $locationProvider.html5Mode(false);
    $routeProvider.when('/', {template: './js/templates/home.html', controller:HelloWorldCtrl});
    $routeProvider.when('/other', {template: './js/templates/other.html'});
});

在索引HTML中,您需要指定模板:

<script type="text/ng-template" src="./js/templates/home.html"></script>
<script type="text/ng-template" src="./js/templates/other.html"></script>