节点呈现的HTML文件没有find相对path脚本

新增节点,并使用Express和EJS运行HTML页面

app.set('views', __dirname + '/views'); app.engine('html', require('ejs').renderFile); //load up index file app.get('/', function(req, res){ res.render('index.html'); }); 

但是HTML包含一些相对path的JS脚本

  <html> ....more... <script src="js/libs/jquery.js"></script> <script src="js/libs/underscore.js"></script> <script src="js/libs/backbone.js"></script> 

如果我通过我的原始“本地主机/ myProject”运行我的HTML页面,这一切工作正常。 但是,如果我通过设置为“localhost:8080”的节点启动我的文件,

  app.server.listen(8080); 

然后它不再find“/ js”目录。 是否有某种configuration,我失踪了,或者我应该以另一种方式呢?

更新 :刚刚发现这一点

 app.use(express.static( __dirname + '/public' )); 

可能是我正在寻找,虽然我需要做一些重构

您应该将expressconfiguration为服务器静态文件,例如,将所有静态文件放在名为“public”的目录下

 app.configure(function () { app.use(express.cookieParser()); app.use(express.bodyParser()); app.use('/public', express.static(__dirname + '/public')); app.use(app.router); }); 

然后在你的html:

  <script src="/public/js/libs/jquery.js"></script>