如何使express.static中间件忽略get参数?

时间:2016-02-08 20:45:37

标签: node.js express

我有一个通过http加载图片的移动应用。我正在使用GET参数进行缓存清除。在质量保证和生产中,图像通过S3提供,这很好。但在开发过程中,我使用express.static()直接从我的node / express后端为它们提供服务。但是这里get参数使静态找不到文件。有没有办法告诉express.static忽略GET参数?我挖掘代码,但可以找到任何明显的东西。想法?

+++ +++ UPDATE

代码和用法示例:

//serve assets on the dev server only
if ((process.env.NODE_ENV || 'DEVELOPMENT') == 'DEVELOPMENT') {
    app.use(express.static(path.resolve(__dirname,'..','public')));
}

这个有效: 本地主机:3000 /资产/化身/ example.png

这个没有: 本地主机:3000 /资产/化身/ example.png V = 2

+++ ++++ CLOSED

实际上,如下所述,这个错误与静态路由无关。真诚地为浪费你的时间而道歉。

1 个答案:

答案 0 :(得分:1)

Express正在运行您一个接一个地定义的所有路线,所以如果您这样做:

app.use('/',express.static('/'))
app.get('/myparamter',function(req,res,next){
    res.send('This Will never be called')

})

但如果你这样做:

app.get('/myparamter',function(req,res,next){
    res.send('This Will be called if you request /myparmeter')
})

// If not another route matches the URL it will server default static file.
app.use('/',express.static('/'))