如何使用Express的静态中间件正确加载图像?

时间:2015-03-21 17:53:10

标签: javascript node.js express

在我的服务器中,我有点新的表达:

app.use(express.static(path.join(__dirname, 'includes')));

在我的客户端javascript中,我只是给出了网址:

var img = $("<img />").attr('src', 'http://localhost:3000/includes/images/img.png');
$(".logo-container").append(img);

但仍然得到404

1 个答案:

答案 0 :(得分:1)

引用express.static documentation

中的示例
  

从应用程序目录中的public目录提供应用程序的静态内容:

// GET /style.css etc
app.use(express.static(__dirname + '/public'));

如示例所示,

  1. 当您挂载static中间件而没有任何显式路径时,它将挂载在根目录中

  2. 您传递给express.static的目录是服务器中的位置,而不是网址的一部分。

  3. 因此,您应该像{/ p>}一样访问没有/includes的图片

    var img = $("<img />").attr('src', 'http://localhost:3000/images/img.png');
    $(".logo-container").append(img);
    

    或者,如果您想使用includes访问它,则需要更改注册,例如

    app.use('/includes', express.static(path.join(__dirname, 'includes')));