【问题标题】:How to hide .html extension in a Node.js server?如何在 Node.js 服务器中隐藏 .html 扩展名?
【发布时间】:2019-01-02 18:11:29
【问题描述】:

我在我的节点服务器中使用 express.js

我有一个网页 https://example.com/login.html,我希望在输入 https://example.com/login 时能够访问它。

由于我习惯了 ApachePHP 我知道如何使用 .htaccess 文件来做到这一点,但在 Node.js 中我不知道。

【问题讨论】:

  • 您必须使用 express 或其他路由库为其创建路由。
  • 如果你从来没有在 node 上工作过 express,那么我建议你关注这个链接。 expressjs.com/en/starter/generator.html

标签: html node.js express


【解决方案1】:
var express = require('express');
var app = express();
app.set('port', (5000));
app.get('/login', function(req, res) {
    res.render('login'); // no need to use '.html'
});

【讨论】:

    【解决方案2】:

    如果有很多 HTML 文件,最好使用express.static 而不是为每个文件创建路由:

    app.use(express.static(htmlDir, { extensions: ['html'] }));
    

    其中htmlDir 指向包含您的HTML 文件的目录。这也适用于子目录,例如/pages 服务于pages.html/pages/page1 服务于pages/page1.html

    查看serve-static 以获取其他选项,例如默认为index.html 或如果没有文件匹配则失败并返回404。

    【讨论】:

      【解决方案3】:

      很简单。

      把它放在代码的顶部

      var express = require("express");
      var app = express();
      

      并将其添加到您的代码中

      app.get('/login', function(req, res) {
          res.sendFile(__dirname + '/public/login.html'); // replace /public with your directory
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-30
        • 2010-12-31
        • 1970-01-01
        • 2012-03-06
        • 1970-01-01
        • 2012-10-12
        相关资源
        最近更新 更多