Expressでnodejsを使用しています。ルート パスへの get-request で、インデックス ファイルにルーティングしたい。パス「/game」への get-request がある場合、別のソースにルーティングしたい。
app.get('/', function(req, res){
res.render( "index", {locals : { myLocal : "myValue"}} );
});
app.get('/game', function(req, res){
res.render("/game/index", {locals : { myLocal : "myValue"}} );
});
最初の「get」は問題なく機能しますが、2 番目は次の例外を送信します。
500 Error: failed to locate view "/game/index"
at Function.exports.compile (D:\Webstorm\myExpress\node_modules\express\lib\view.js:61:15)
at ServerResponse.res._render (D:\Webstorm\myExpress\node_modules\express\lib\view.js:417:18)
at ServerResponse.res.render (D:\Webstorm\myExpress\node_modules\express\lib\view.js:318:17)
at exports.game (D:\Webstorm\myExpress\routes\index.js:12:9) at callbacks (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:272:11)
at param (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:246:11)
at pass (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:253:5)
at Router._dispatch (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:280:5)
at Object.middleware [as handle] (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:45:10)
at next (D:\Webstorm\myExpress\node_modules\express\node_modules\connect\lib\http.js:204:15)
これは私のフォルダ構造です:
views
|--- game
| |---index.jade
| |---layout.jade
|---index.jade
|---layout.jade
アップデート ########
Express自体(ファイル:「\express\lib\view.js」、関数:「_render」)をチェックし、ローカルの「options.root」を出力しました。値は「D:\Webstorm\myExpress/views」です..これは正しくないようです。しかし、なぜ root-request が機能するのか疑問に思っています。この行を変更しました:
app.set('views', __dirname + '/views');
これに:
app.set('views', __dirname + '\\views');
成功しませんでした。