app.get('/images/:filename', (req, res, next) => {
console.log(req.params.filename);
const newUrl = `/static/images/${req.params.filename}`;
req.url = newUrl;
next();
});
如果filename
不包含特殊字符.
例如localhost/images/myImage.jpg
将打印出myImage.jpg
。
如果filename
包含.
之类的localhost/images/my.Image.jpg
,则控制台将不会打印出任何内容。有没有办法来解决这个问题?
编辑:在下面添加了代码。我不确定它的作用。
app.get(
/^.+\.(jpg|jpeg|gif|png|bmp|ico)$/,
(req, res) => {
res.status(404).end();
}
);
编辑2:我的坏人!就像别人的评论一样,我发现问题实际上出在服务人员身上。显然是在搞乱缓存。
有人可以解释上面第二段代码中的^.+\.$
吗?我会标记那个答案。
答案 0 :(得分:0)
我认为它是express.js?如果是这样,:parms
并不是传递复杂值(例如,简单的alphaliteral,ehm,params等更复杂的值)的最佳选择。您可以尝试将其传递到params
的{{3}} istead中,并在客户端和unescape服务器端适当地对其进行转义
答案 1 :(得分:-1)
请参阅此文档: