2017-02-20 8 views
0

expressでいくつかの問題がありましたが、静的ファイルを扱うことができません。 は私が行う場合:それは私に301か何かを与えるExpressJS Static not working

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

、基本的にファイルを見つけることができません(私も追いかけ/何の問題を回避するために、シークレットモードでそれを試してみました)。

しかし、私がしなければ何らかの理由:

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

それだけで正常に動作し、両方のパスが正しいです。なぜこれが起こっているのですか?どのように解決できますか?

Expressバージョン:4.14.1

+0

静的ファイルの提供にルートパスを指定する必要はありません。 'app.use(express.static(DIST_FILEPATH)); ' – mscdex

+0

@mscdex 3つの静的ファイルパスがありますとdist)しかし、最後にパスのないdistを追加するとうまくいくかもしれません: - ? – user1640736

+0

はい、あなたは 'app.use(express.static(DIST_FILEPATH));'を使う必要があります。それはサーバdistファイルだけです。 –

答えて

0

問題は、構文が少しずれていることです。サーバーの静的ファイルのみを使用する場合は、app.use(express.static(path.join(__dirname)));になります。http://localhost:3000/に行くとindex.htmlのようなものを追加すると、htmlファイルが表示されます。ここでは、静的なファイルを提供していますシンプルExpressサーバの例です:

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; 
}); 

あなただけ例えばhttp://localhost:3000/index.htmlまたはhttp://localhost:3000/myMusicFile.mp3に行き、その後node <filename>.jsでこれを実行することができます。

願っています!