ExpressJS Static无法正常工作

时间:2017-02-20 13:54:07

标签: node.js express

对于快递有些问题,我似乎无法提供静态文件。 如果我这样做:

app.use('/*', express.static(DIST_FILEPATH));

它给了我一个301或其他东西,基本上找不到该文件(我已经在隐身模式中尝试了它,以避免追逐/出现任何问题)。

但出于某种原因,如果我这样做:

app.use('/*', function (req, res, next) {
     console.log(req.originalUrl);
    console.log(DIST_FILEPATH);
    res.sendFile(path.join(DIST_FILEPATH, req.originalUrl));
});

它工作正常,两条路径都是正确的。为什么会发生这种情况,我该如何解决?

快递版:4.14.1

1 个答案:

答案 0 :(得分:0)

您的问题是您的语法略有偏差。如果您只想要服务器静态文件,您可以使用app.use(express.static(path.join(__dirname)));,然后当您转到http://localhost:3000/时,您可以添加index.html之类的内容,以便您可以看到html文件。以下是一个提供静态文件的简单快速服务器示例:

var express = require('express');
var path = require('path');
var app = express();

app.set('port', 3000);


app.use(express.static(path.join(__dirname))); //here you can change your path. for example you could add + 'public' if all of your files where in the 'public' directory

var server = app.listen(app.get('port'), function() {
  var port = server.address().port;
});

您可以使用node <filename>.js运行此功能,然后转到http://localhost:3000/index.htmlhttp://localhost:3000/myMusicFile.mp3

希望这有帮助!