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

标签 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 配置来执行此操作。

最佳答案

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

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

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

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

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

关于javascript - 如何使用 Node js 将图像和 javascript 文件发送到浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22367556/

相关文章:

javascript - AJAX 响应 200,但 XAMPP 本地主机上运行的 PHP 脚本没有 JSON 响应数据

javascript - Facebook sharer.php 是否已更改为不再接受详细参数?

css - 如何用div和css实现这种布局?

javascript - 使 HTML <td> 类似于 Zurbs 响应式表格

javascript - Node js Express.编译错误

javascript - Mongo 中的 Meteor 数据在哪里?

JavaScript RegEx 除动态系列之外的所有字符

javascript - 有没有一种好方法可以在 dom 节点上启用 "open link in a new window"浏览器菜单选项,而不会使链接跟随点击?

javascript - 在js之前加载css文件

node.js - 如何将类型与模块一起导出?