如何设置节点/角度以使index.html/app
在example.com
而不是example.com/app/index.html#/home
我尝试将index.html
放在节点服务器的根目录下,但仍将网址保留为example.com/index.html#/home
答案 0 :(得分:9)
您需要启用html5mode
。它的文档和注意事项可以找到here。
以下是Brian Ford:
的示例angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives']).
config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
// configure $routeProvider, then...
$locationProvider.html5Mode(true);
}
]);
angular-ui框架有example configuration用于连接到express.js:
var express = require('express');
var app = express();
app.use('/js', express.static(__dirname + '/js'));
app.use('/dist', express.static(__dirname + '/../dist'));
app.use('/css', express.static(__dirname + '/css'));
app.use('/partials', express.static(__dirname + '/partials'));
app.all('/*', function(req, res, next) {
// Just send the index.html for other files to support HTML5Mode
res.sendfile('index.html', { root: __dirname });
});
app.listen(3006); //the port you want to use
在Brian的文章中,您不必手动映射静态资产文件夹,因为他的示例提供了单个index.html
,将部分映射到/partials/:name
,然后与/api/*
进行交互
答案 1 :(得分:0)
如果您在NODEJS服务器上使用Yoeman或grunt build。
您可以简单地将新文件server.js
添加到根文件夹中,如果您的应用程序文件夹位于根目录和根文件夹中。
var express = require('express');
var app = express();
app.use(express.static(__dirname + "/app"));
app.all('*', function(req, res, next) {
// Just send the index.html for other files to support HTML5Mode
res.sendFile('/app/index.html', { root: __dirname });
});
var port = 1337;
app.listen(port); //the port you want to use
console.log('Server running at localhost:' + port);

确保您已在AngularJs配置中启用HTML5模式
angular.module('yourApp')
.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider
.when('/some', {
templateUrl: '../templates/some.html'
})
.otherwise({redirectTo: '/'});
//enabling HTML5 mode
$locationProvider.html5Mode(true);
}
]);