2016-07-12 6 views
0

私は自分のアプリケーションにexpressを使用しています。現在、サーバーを起動してブラウザーをローカルホストに開くと、GET要求を出したいインデックスページが表示されます。問題は、ページ上の画像があるようになっていますされ、そしてそれは私が私ので、私は混乱しているが見つからない404を、取得していますExpress JSアプリケーションの設定

http://localhost:3000/public/img/ssi.png 404(見つかりません)GET

が表示されていません私のhtmlで知って、そのイメージへのファイルパスが正しい

<a href="index.html"><img src="../public/img/ssi.png"></a> 

である、これは私のファイル構造である:

  • express_app
    • node_modules
    • 公共
      • CSS
      • IMG
        • ssi.png
      • JS
    • ルータ
    • のビュー
      • index.htmlを

下の私のサーバー・コードがある

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

app.set('views', __dirname + '/views'); 
app.set('public', __dirname + '/public'); 
app.set('view engine', 'ejs'); 
app.engine('html', require('ejs').renderFile); 
app.get('/',function(req,res){ 
     res.render('index.html'); 
    }); 
app.get('/about',function(req,res){ 
     res.render('about.html'); 
    }); 

var server = app.listen(3000, function() { 
    console.log("We have started our server on port 3000"); 
}); 

誰か、誰も、助けてください!

答えて

1

htmlファイルに相対パスを設定する必要はありません。プロジェクトのpublicフォルダから始まるパスです。

静的ファイル(通常はpublicフォルダ内)を提供するには、expressの静的ファイルapiも使用する必要があります。

app.use(express.static(__dirname + '/public')); 

だから、あなたの例では、それは<img src="img/ssi.png">

+1

がすっごくありがとうござい使用してアクセスできる必要があります。ここでは は、あなたがそれを行う方法です! – Fabian

関連する問題