节点新手,让它使用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页面,一切正常。但是,如果我通过Node设置为“localhost:8080”
启动我的文件 app.server.listen(8080);
然后它不再找到“/ js”目录。是否有某些我缺少的配置,或者我应该采用另一种方式?
更新: 刚发现这个
app.use(express.static( __dirname + '/public' ));
可能是我正在寻找的,虽然我需要做一些重构
答案 0 :(得分:3)
您应该配置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>