节点呈现的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>