web-dev-qa-db-ja.com

ノード/エクスプレスアンカーリンクルート

私はウェブサイトを作成しており、フロントエンドにはHTMLを使用しています。バックエンドには、node/Expressを使用しています。

HTMLでは、別のHTMLページをリダイレクトするアンカータグがあります。別のルートを作成するには、Expressでルーターを使用しました。

ここで問題は、ノードを介してWebサイトを実行すると、リダイレクトが期待どおりに機能しないことです。

index.html:

        <li><a href="index.html">Home</a></li>
        <li><a href="publication.html">Publication</a></li>
        <li><a href="team.htm">Team</a></li>
        <li><a href="contact.html">Contact</a></li>

ExpressJS:

index.js:

  var express = require('express');
  var path = require('path');
  //router object
 var router = express.Router();

 router.get('/', function (req, res) {
  res.sendFile(path.join(__dirname, '..', '/public/html/index.html'));
 });

  module.exports = router;

publication.js:

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

  //router object
  var router = express.Router();

  router.get('/publication', function(req, res){
    res.sendFile(path.join(__dirname, '..', '/public/html/publication.html'));
  });

  module.exports = router;

ノードを介してウェブサイトを実行すると、次のように入力できます。

localhost:3000/publication

次に、publication.htmlを取得しています。

localhost:3000

それはindex.htmlを開き、私のインデックスページでは、アンカータグの上にあります。アンカータグのいずれかをクリックすると、「publication.htmlを取得できません」などのエラーメッセージが表示されるので、publication.jsにリダイレクトして、

router.get('/publication')

メソッドを開き、publication.htmlを開きます。

誰かが私を正しい方向に向けることができますか?

6
jackysatpal

このコード

    <li><a href="index.html">Home</a></li>
    <li><a href="publication.html">Publication</a></li>
    <li><a href="team.htm">Team</a></li>
    <li><a href="contact.html">Contact</a></li>

http:// localhost:3000/index.html のようなリンクを生成します。 /publicationなどのルートを定義したため、バックエンドはこのルートを認識しません。以下のように変更する必要があります

    <li><a href="/">Home</a></li>
    <li><a href="publication">Publication</a></li>
    <li><a href="team">Team</a></li>
    <li><a href="contact">Contact</a></li>

詳細 エクスプレスルーティング

8
Arpit Solanki