2017-09-28 8 views
1

index.ejsindex.ejsフォルダにあるindex.htmlページのコードは引き続き提供しています。私はビデオの例に従ったので、ejsファイルをレンダリングできる理由はわかりませんが、私はまだindex.htmlファイルしか見ていません。NodeJS - index.ejsファイルをレンダリングしようとしていますが、私のパブリックフォルダにあるindex.htmlサーバー

私が使っているビデオの例は同じようです。私のpackage.jsonファイルは"main": "app.js"です。ここで

は、ビデオの例のリンク、および以下のコードです: https://youtu.be/gnsO8-xJ8rs?t=28m12s

//View Engine 
app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname, 'views')); 

//Body Parser Middleware 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended : false})); 

//Set Static path 
app.use(express.static(path.join(__dirname, 'public'))); 

//Routes 
app.get('/', (req, res) => {//homepage represented by the single slash 
    res.render('index'); 
}); 

app.listen(3000,() => { 
    console.log('server started on port 3000...'); 
}); 

私は

//Routes 
app.get('/', (req, res) => {//homepage represented by the single slash 
    res.render('index'); 
}); 

をコメントアウトした場合、その後EJSファイルをレンダリングして提供されていることに気づきました。

アドバイスをいただければ幸いです!

+1

あなたの静的パスがルートのコメントを外し、ディレクトリへのファイルパスを './../ views/index.ejs'のようにすることが前提です –

答えて

2

ノートは、デフォルトではEJSは 'ビュー' フォルダの中に見えること

=> app.set( 'ビュー'、path.join(__ dirnameは、 'ビュー'));あなたはビューがあなたのパブリックフォルダに変更し、それが稼動中であるように、それを見て、ファイルのパスを指定しているので

関連する問題