Express和URL重写| HTML5历史

时间:2013-04-13 11:47:34

标签: node.js angularjs express

我正在尝试构建一个简单的服务器来提供所有逻辑所在的单个HTML页面 由Angular处理。至于我正在使用HTML5历史模式,我能够导航 通过标准网址。

现在,为了完成这项工作,我需要启用URL重写。我尝试了这一系列和 尽管返回始终是正确的HTML页面,但URL会有所不同,并且不会保留初始值 值。例如/ popular应该加载index.html并保留URL / Popular以便 JS逻辑可以加载所需的页面。

以下是快速代码。

var express = require("express");
var app = express();

app.configure(function(){
  app.use(express.static(__dirname + '/dist'));
}); 

app.get("/*", function(req, res, next){
  res.sendfile(__dirname + '/dist/index.html');
});

app.listen(3000);

任何建议表示赞赏。 谢谢大家。

1 个答案:

答案 0 :(得分:4)

您需要为相对文件名设置根目录。

app.all('/*', function(req, res) {
  res.sendfile('index.html', { root: __dirname+'/dist' });
});