阻止iisnode缓存require'd静态文件

时间:2016-01-24 17:57:22

标签: node.js rest caching iis iisnode

我在Node上运行RESTful API,它运行在服务器磁盘上的静态文件上。如果我在Node上运行服务(通过命令行),我可以对我的静态文件集合执行所有CRUD操作,并接收对我的HTTP请求的预期HTTP响应。

但是,当我使用相同的服务并通过iisnode在IIS上托管它时,我的GET请求似乎返回了文件的缓存版本。也就是说,如果我通过REST服务编辑文件,我可以远程进入服务器并确认已进行更新,但如果我通过RESTful API请求文件,则会收到旧版本。

我尝试了以下方法,其中没有一个对我有用:

  • 弹跳IIS。
  • 在Web IIS Web应用程序上禁用“缓存”和“内核缓存”输出缓存。
  • 在Cache-Control标头中指定no-cache。
  • 删除使用iisnode拦截器的配置。

如何防止iisnode(或iis)缓存我的静态文件的任何想法都将非常受欢迎。

1 个答案:

答案 0 :(得分:0)

找到解决此问题的方法。通过阅读this thread得出解决方案。解决方案包括:

  • 更新我的iisnode标签watchedFiles属性值以引用我想触发Node进程重启的静态(JSON)文件。已从<iisnode watchedFiles="*.js" />更改为<iisnode watchedFiles="*.js;relative/path/to/static files/*.json" />
  • 回收应用程序的应用程序池。线程中没有记录此步骤,我怀疑是其他人在使解决方案工作时遇到问题的原因。