gpt4 book ai didi

node.js - 如何让express.static中间件忽略get参数?

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:34 25 4
gpt4 key购买 nike

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

+++更新+++

代码及使用示例:

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

这个有效:本地主机:3000/assets/avatars/example.png

这个没有:本地主机:3000/assets/avatars/example.png?v=2

+++已关闭++++

正如下面所建议的,这个错误实际上与静态路由无关。对于浪费您的时间表示诚挚的歉意。

最佳答案

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('/'))

关于node.js - 如何让express.static中间件忽略get参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35278971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com