如何重定向到static*html(如果在公用文件夹中可用)&404(如果不可用)。

var _version = 'v1';

// redirect to a.html
app.get(_version + '/a.html', (req, res)  => {
    res.sendFile(path.join(_dirname, 'public', 'htmls', 'a.html'));
});

// redirect to b.html
app.get(_version + '/b.html', (req, res)  => {
    res.sendFile(path.join(_dirname, 'public', 'htmls', 'b.html'));
});

// redirect to c.html
app.get(_version + '/c.html', (req, res)  => {
    res.sendFile(path.join(_dirname, 'public', 'htmls', 'c.html'));
});

// redirect to someRandom.html
app.get(_version + '/someRandom.html', (req, res) => {
    res.sendFile(path.join(_dirname, 'public', 'htmls', 'someRandom.html'));
});

// else redirect to index.html
app.get(_version + '/*.html', (req, res)  => {
    res.sendFile(path.join(_dirname, 'public', 'htmls', 'index.html'));
});

如何组合前四个请求以重定向到相应的*.html,以便如果文件存在,则必须重定向到该文件,否则重定向到index.html。
注意:我正在单独处理所有其他404500请求。

最佳答案

您只需使用express.static就可以做到这一点

app.use(express.static(path.join(_dirname, 'public/htmls')));

或者可以使用参数将四条管线更改为一条管线:
app.get(_version + '/:filename', (req, res)  => {
  res.sendFile(path.join(_dirname, 'public', 'htmls', req.params.filename));
});

关于node.js - 快速重定向到静态html(如果有)到自定义路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33366699/

10-13 09:03