微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 节点呈现的HTML文件未找到相对路径脚本

节点新手,并使用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' ));

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

解决方法

你应该配置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>

原文地址:https://www.jb51.cc/nodejs/445734.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐