Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express app.get带“quot;的静态文件&引用;在文件名中_Javascript_Node.js_Express - Fatal编程技术网

Javascript Express app.get带“quot;的静态文件&引用;在文件名中

Javascript Express app.get带“quot;的静态文件&引用;在文件名中,javascript,node.js,express,Javascript,Node.js,Express,如果文件名不包含特殊字符 例如,localhost/images/myImage.jpg将打印出myImage.jpg 如果filename包含一个文件,例如localhost/images/my.Image.jpg,console将不会打印任何内容。有办法解决这个问题吗 编辑:在下面添加代码。我不知道它是干什么的 app.get('/images/:filename', (req, res, next) => { console.log(req.params.filename);

如果
文件名
不包含特殊字符

例如,
localhost/images/myImage.jpg
将打印出
myImage.jpg

如果
filename
包含一个
文件,例如
localhost/images/my.Image.jpg
,console将不会打印任何内容。有办法解决这个问题吗

编辑:在下面添加代码。我不知道它是干什么的

app.get('/images/:filename', (req, res, next) => {
  console.log(req.params.filename);
  const newUrl = `/static/images/${req.params.filename}`;
  req.url = newUrl;
  next();
});
编辑2:我的坏!就像有人评论的那样,我发现问题其实是服务人员的问题。这显然是在搞缓存


有人能解释一下上面第二段代码中
^.+\.$
的作用吗?我会把答案改为那个。

我想它是express.js?如果是这样,
:parms
不是传递复杂值(例如,比简单字母、ehm、params更复杂的值)的最佳候选者。您可以尝试将其传递给
params的isntead,并在客户端和unescape服务器端正确转义它。请参阅此文档:


那不是真的
:filename
param应与
myImage.jpg
my.Image.jpg
一起使用。参数中的额外点不影响其工作方式。问题不在发布的代码中,不应影响
console.log
调用。请提供,以复制问题。
app.get(
    /^.+\.(jpg|jpeg|gif|png|bmp|ico)$/,
    (req, res) => {
        res.status(404).end();
    }
);