Node.js + Express.js:express.static不提供图像(包含错误)

时间:2015-01-15 00:14:11

标签: javascript node.js image express

我尝试使用express.static在http://localhost:3000/logo/logo.jpg投放图片。 图像 logo.jpg 位于 / public / images 中,我的代码是:

    app.use("/logo", express.static(__dirname + '/public/images'));

页面加载,但图像已损坏。 Firefox说:http://localhost:3000/logo/logo.jpg处的图片无法显示,因为它包含错误。当我查看页面信息时,Firefox告诉我logo.jpg的图像尺寸是0x0。我尝试过使用各种图片和不同的浏览器,但它们都有同样的问题。

如何正确加载图像?

2 个答案:

答案 0 :(得分:0)

我无法获取提供静态文件的目录,但是当我开始使用path.join时,它开始按预期工作。试试这个:

var path = require('path');
app.use('/logo', express["static"](path.join(__dirname, 'public/images')));

答案 1 :(得分:0)

我找到了罪魁祸首。出于某种原因,如果我放置了这一行:

app.use("/logo", express.static(__dirname + '/public/images'));

在此代码之后:

// load liveReload script only in development mode
// load before app.router
// development only
if ('development' == app.get('env')) {
  var liveReloadPort = 35729;
  var excludeList = ['.woff', '.flv'];

  app.use(require('connect-livereload')({
      port: liveReloadPort,
      excludeList: excludeList
    }))
}

它没有用。但是,如果我在liveReload代码之前移动app.use(" / logo")...行,它就可以工作。

不完全理解为什么这个位置会影响代码的工作方式,但至少它确实如此!