Javascript $routeProvider不工作并使用node.js向服务器发出请求
当我在url中拉localhost:5000/登录时,我get无法get/login。因此$routeProvider无法工作并加载视图。相反,它向服务器发出请求,因此基本上是将页面提取到服务器。但是我不想把页面拿到服务器上,而是想加载视图。我的申请结构如下: libJavascript $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
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'});
}]);