【问题标题】:express send file error 404 not found快递发送文件错误 404 未找到
【发布时间】:2017-04-25 23:50:12
【问题描述】:

我有以下代码服务器端代码:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);


app.get('/', function(req, res){
    res.sendfile('index.html');
});
app.get('/data/cursor.png', function(res, res) {
    res.type('png');
    res.sendfile('data/cursor.png');
});

在客户端我有以下代码:

<img class="cursor" src="data/cursor.png">

当我加载 index.html 时,出现以下错误: 获取http://localhost:3000/cursor.png 404(未找到) 为什么会这样?我还发送了一些其他文件,例如 javascript 文件和 css。他们工作得很好...... 所以 res.sendfile('js/drawingV2.js');工作得很好。

app.get('/js/drawingV2.js', function(res, res) {
    res.sendfile('js/drawingV2.js');
});

有人可以向我解释我做错了什么吗? 如果您需要更多代码或者我不清楚,请告诉我:)

【问题讨论】:

    标签: javascript node.js express server sendfile


    【解决方案1】:

    您只是向您的用户发送 index.html 文件,或者这就是 Express 看到它的方式。您需要将包含所有文件的整个目录发送给用户,这就是 express.static 所做的。

    假设您有一个名为 public 的目录,其中包含 index.html,以及一个名为 data 的文件夹,其中包含 cursor.png。

    server.js
    
    public -
    
        index.html
    
        data -
    
            cursor.png
    

    然后-

    var express = require('express');
    var app = express()
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    
    app.use(express.static("public")) // serve the whole directory
    

    还有中提琴!它应该工作。 (express.static 服务于整个目录)

    【讨论】:

      猜你喜欢
      • 2021-05-12
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 2021-01-10
      • 2018-10-28
      • 1970-01-01
      相关资源
      最近更新 更多