如果在公共文件夹中可用,则如何重定向到静态* 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。
注意:我正在处理所有其他404
& 500
单独提出请求。
答案 0 :(得分:3)
您可以使用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));
});