Javascript $routeProvider不工作并使用node.js向服务器发出请求

Javascript $routeProvider不工作并使用node.js向服务器发出请求,javascript,node.js,angularjs,Javascript,Node.js,Angularjs,当我在url中拉localhost:5000/登录时,我get无法get/login。因此$routeProvider无法工作并加载视图。相反,它向服务器发出请求,因此基本上是将页面提取到服务器。但是我不想把页面拿到服务器上,而是想加载视图。我的申请结构如下: lib node_modules public ----js ---------all js files like angular, script.js files here ----stylesheets ---------all cs

当我在url中拉localhost:5000/登录时,我get无法get/login。因此$routeProvider无法工作并加载视图。相反,它向服务器发出请求,因此基本上是将页面提取到服务器。但是我不想把页面拿到服务器上,而是想加载视图。我的申请结构如下:

lib
node_modules
public
----js
---------all js files like angular, script.js files here
----stylesheets
---------all css files here
views
app.js (main node file)
home.html
index,html
login.html
npm-debug.log
在客户端,Angular script.js如下所示:

var app = angular.module('app', [])
.config(['$routeProvider','$locationProvider', function($routeProvider, $locationProvider) {

    $locationProvider.html5Mode(true);
    $locationProvider.hashPrefix = '!';

    $routeProvider.when('/login', {
        template: 'login.html', 
        controller: 'LoginController'
    });

    $routeProvider.otherwise({redirectTo: 'login'});
 }]);
我的index.html文件有一个指令

我不知道我做错了什么。任何帮助都可能非常有用。

使用Angular需要额外的服务器端配置。在浏览器中输入
localhost:5000/login
时,首先将请求发送到服务器,并且必须将服务器配置为返回
index.html
文件,而不是
login.html
文件,根据默认行为,应用程序似乎正在执行该文件。我假设Angular应用程序的引导位置是
index.html
而不是
login.html
,必须在Angular的路由模块看到路由是
/login
并根据配置更新指令之前加载该应用程序

看起来它在使用node.js重写URL方面可能很有用

var app = angular.module('app', [])
.config(['$routeProvider','$locationProvider', function($routeProvider, $locationProvider) {

    $locationProvider.html5Mode(true);
    $locationProvider.hashPrefix = '!';

    $routeProvider.when('/login', {
        template: 'login.html', 
        controller: 'LoginController'
    });

    $routeProvider.otherwise({redirectTo: 'login'});
 }]);