6

新节点,并让它运行使用 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 包含一些相对路径 JS 脚本

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

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

 app.server.listen(8080);

然后它不再找到“/js”目录。我是否缺少某种配置,或者我应该以另一种方式进行?

更新:刚刚发现这个

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

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

4

1 回答 1

4

您应该将 express 配置为服务器静态文件,例如,将所有静态文件放在名为“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>
于 2013-05-08T04:50:00.687 回答