【发布时间】:2016-02-09 11:11:13
【问题描述】:
我有一个通过 http 加载图像的移动应用程序。我正在使用 GET 参数进行缓存清除。在 QA 和生产中,图像是通过 S3 提供的,这很好用。但在开发中,我直接从我的节点/快递后端使用 express.static() 为它们提供服务。但是这里的get参数使静态找不到文件。有没有办法告诉 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')));
}
这个有效: localhost:3000/assets/avatars/example.png
这个没有: localhost:3000/assets/avatars/example.png?v=2
+++关闭++++
实际上,如下所述,该错误与静态路由无关。对浪费您的时间表示诚挚的歉意。
【问题讨论】:
-
你能展示你目前拥有的东西,或者一个例子吗?听上去,我觉得应该没什么问题。
-
另外 - 你确定你总是想在生产中使你的缓存失效吗?缓存的存在是有充分理由的。
-
您使用哪个快递版本?一般
static中间件是一个小的module,如果不能配置,可以根据需要复制修改,然后用myStatic()代替express.static()。 -
我第二个@Jordonias。 Express.static 将忽略静态文件末尾的任何 GET 参数。您能更具体地了解一下休息时间吗?也许有些文件名示例不起作用?
-
感谢所有回复和建议。我用代码示例更新了我的问题。 duncahall:这是一个版本标记,而不是随机缓存破坏者 Boris:在最后的手段中,我总是可以只使用发送文件。但我想弄清楚我是否可以使用标准组件。