如何使用Node js将图像和javascript文件发送到浏览器

时间:2014-03-13 01:51:01

标签: javascript html node.js express http-status-code-404

我创建了一个Node.js服务器,当Javascript是HTML页面的一部分时,该服务器运行良好。我将JS移动到另一个文件并添加了一些图像。现在它不会将图像或JS加载到浏览器中。但是,当我直接打开网页时,网页呈现完美。这就是我的服务器的样子:

app.get('/',function(req,res){
    res.end('Hello World!Go to /map to see the google map');
});
app.get('/map',function(req,res){
    var conn;
    //images must be sent to the client from the server...
    res.sendfile(__dirname+'/client/google_maps.html');
    //receiving requests from jQuery 
});

我没有使用Express项目结构或Express中间件或Express配置来执行此操作。

1 个答案:

答案 0 :(得分:3)

如果这是您的所有代码,我认为您遇到的问题是合理的。在浏览器请求时,您没有告诉服务器如何响应您的图像和脚本。例如,在您的google_map.html文件中<script src="myjs.js"></script>,您的浏览器会要求您的节点应用程序提供myjs.js的内容,但您的服务器不知道如何处理它。< / p>

你可以尝试添加如下代码,看它是否有帮助。

app.get('/myjs.js', function (req, res) {
  res.sendfile(__dirname + '/myjs.js');
});

正如dimadima所说,Express提供了一个模块来处理你可以使用的静态文件,如

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