节点/表达锚链接路径

jac*_*pal 6 html anchor node.js express

我正在制作一个网站,对于前端,我正在使用HTML。对于后端,我正在使用node / Express。

在HTML中,我有一些锚标记可以重定向不同的HTML页面。为了创建不同的路由,我在Express中使用了Router。

现在的问题是,当我通过节点运行网站时,重定向无法按预期工作。

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>
Run Code Online (Sandbox Code Playgroud)

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;
Run Code Online (Sandbox Code Playgroud)

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;
Run Code Online (Sandbox Code Playgroud)

当我通过节点运行网站并键入:

本地主机:3000 /发布

然后我得到了publication.html,当我键入

本地主机:3000

它会打开index.html,在我的索引页面中,我在锚标签上方。现在,如果我单击任意一个锚标记,那么我会收到一条错误消息,例如“无法获取publication.html”,我想要的是重定向到我的publication.js并调用

router.get('/publication')
Run Code Online (Sandbox Code Playgroud)

方法,然后打开publication.html

谁能指出我正确的方向?

Arp*_*nki 8

这段代码

    <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>
Run Code Online (Sandbox Code Playgroud)

将生成类似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>
Run Code Online (Sandbox Code Playgroud)

有关快速路由的更多信息