【发布时间】:2017-07-23 12:42:53
【问题描述】:
我是 node 和 express 的新手,我创建了一个简单的 angularjs + express 应用程序,其中路由只能通过 angular 应用,但 angular 路由器被调用两次。这是我不想要的。当我继续开发时,它也会破坏一些东西。
版本:
- Angular 1.6.5
- 角路由器 1.6.5
- 节点 6.10
- Express 4.15.3
server.js:
let express = require('express');
let app = express();
//make folder accessible for the application
app.use(express.static(__dirname+"/public"));
app.get('/*', function (req, res) {
res.sendFile('./public/index.html', {root: __dirname});
});
//set port
app.listen(1337);
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<base href="/">
<script src="js/angular.js"></script>
<script src="js/angular-route.js"></script>
<script src="controllers.js"></script>
</head>
<body ng-app="app">
<div ng-controller="MainCtrl">
<div class="page" ng-view></div>
</div>
</body>
</html>
controller.js
'use strict';
const app = angular.module('app', ['ngRoute']);
angular.module('app').config(['$locationProvider' ,'$routeProvider',
function ($locationProvider, $routeProvider) {
$routeProvider.when('/about', {
templateUrl: 'about.html',
controller: 'AboutCtrl',
}).otherwise('/about');
$locationProvider.html5Mode(true);
}
]);
angular.module('app').controller('MainCtrl',[function(){}]);
angular.module('app').controller('AboutCtrl',[function(){}]);
我真的不知道我做错了什么。 html5mode 工作得很好。当我停用 Html5 模式时,路由器仍然会被调用两次。
【问题讨论】:
标签: javascript angularjs node.js express routing