2016-12-26 8 views
0

私はちょうどこのように設定するの.htmlファイル、サービス提供のためにnode.jsサーバーを持っている:node.jsで.htmlファイルを提供する際に.htmlファイルで使用するために、別のディレクトリにあるファイルをどのようにソースしますか?

var http=require("http"); 
var express=require("express"); 
var path=require("path"); 

var port=process.env.port||5000; 

var app=express(); 

//Serve ALL resource files statically 
app.use(express.static(__dirname+"/publicResources")); 
app.use(express.static(__dirname+"/private")); 


app.get("/",function(req,res) 
{ 
    res.sendFile(__dirname+"/publicResources/webpage.html"); 
}); 

console.log("We're up"); 

app.listen(port); 

をそしてwebpage.htmlに私はプライベートディレクトリに保存していた画像を、使用したいです: http://localhost:5000/private/puppy.jpgに関連する、 failed to load resource: the server responded with a status of 404 (Not Found):私はnodeでこれを実行し、クロームでそれを表示すると
<img src="../private/puppy.jpg">

、私は標準のエラーメッセージが表示されます。

.htmlファイルが画像をソース化できないのはなぜですか? - node.jsで静的ファイルを提供し、書かれている.htmlファイルに関連するソースパスを使用する必要があることを理解しています。どちらも私が行っています(私は思っています)。ここで何がうまくいかないのでしょうか?

+0

[node.js Expressフレームワークで2つの異なる静的ディレクトリを設定する](http://stackoverflow.com/questions/5973432/setting-up-two-different-static-directories-in-node-js)の可能な複製-express-framework) –

答えて

1

express.static()は、パスプレフィックスなしでサーバールート上で直接ファイルを処理します。

したがって、実際には/puppy.jpgを提供しています。

あなたはURLでprivate/でそれを提供したい場合は、そのパスにexpress.static()をマウントする必要があります。

app.use("private", express.static(__dirname+"/private")); 

documentationを参照してください。

+0

Hmmn、私はちょうどそれを試み、正確に同じエラーメッセージを得ました - 'src '属性を' .html'ファイルと同じにしておきますか? –

関連する問題