私はウェブサイトを作成しており、フロントエンドには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を開きます。
誰かが私を正しい方向に向けることができますか?
このコード
<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>
詳細 エクスプレスルーティング