2017-07-12 19 views
0

Node.jsをサーバーとして使用してページをロードしようとしています。Node.jsを使用してページをレンダリングするときにcss/jsファイルの参照エラーが発生しました

私は、ユーザー入力に応じて異なるページをロードするAPIを作成しようとしています。

私は、次のコードを使用しています:

app.get('/apitest/:id', function(request, response) { 

    const requestId = request.params.id;  

    if(requestId == 1){ 
     response.render('pages/index2'); 
    } else if(requestId == 2){ 
     response.render('pages/index3'); 
    } else{ 
     response.render('pages/404'); 
    } 
}); 

問題がjsファイルやCSSファイルが見つからない、ロードされたページに含まれていることです。

http://localhost:5000/apitest/js/three/examples/js/renderers/CanvasRenderer.js

しかし、すべてのjs/cssファイルは、フォルダ内のパブリック/のJSや公共/ CSS(古典的なサーバノードです: 理由は、サーバーは、次のいずれか間違ったパスでそれらを探すということです。 jsパス)。

は、だから私はちょうど

app.get('/', function(request, response) { 
    response.render('pages/index'); 
}); 

すべてのものを使用してページをロードする場合は完璧に動作し、スクリプトが完全にロードされますが、私は、コードの最初のスニペットを使用しようとすると、サーバーは、もはやそれを見つけることができません。

どうすればこの問題を解決できますか?ありがとう。

+0

あなたは絶対パスを使用する必要があります。 – SLaks

+0

問題が解決しましたか? – taha

+0

@taha実際に私はすでにこのコード行を持っています:app.use(express.static(__ dirname + '/ public'))それが動作していない購入。私もあなたのソリューションを試してみましたが、うまくいきません。 – Jacob

答えて

1

マウントパスを指定します。

// path should be required 
`app.use('/apitest/:id', express.static(path.join(__dirname, 'public')))` 
+1

それは働いた!ありがとうございました!! – Jacob

+0

@Jackあなたは歓迎です:)幸せなコーディング – taha

関連する問題