akka-http 在 Web 服务器上 getFromFile 导致刷新时出现 404

akka-http on web server getFromFile results in 404s on refresh

我正在为我的 React-based 单页应用程序的 Web 服务器使用 akka-http,并且在刷新我的网站时遇到问题。我为请求的资源返回了 404(只是 index.html)。执行 "super refresh"(ctrl + 刷新)工作正常,一切都按预期加载。但是当我进行正常刷新并且 if-modified-since header 包含在请求 header 中时,我注意到服务器返回了 404 响应。

~ {
  getFromFile(s"$STATIC_CONTENT_ROOT/index.html")
}

为确保这确实是问题所在,我进行了完整性检查。我更新了代码,将资源文件夹中所有文件(所有 js 文件和 index.html)的修改日期更新为每当 catch-all / 刷新端点被命中时的当前时间,并注意到这解决了刷新问题。但是,"solution" 只能在本地工作,因为一旦这些资源部署到实际的开发或生产共享主机上,我就没有写权限。

我现在正在寻找一个解决方案,让我可以忽略 header 的这一部分,或者实际正确地处理它。我试过使用 akka-http 的条件 (...) 指令,但没有成功。

有没有人运行以前遇到过这个问题?并成功解决了这个问题?

我发现 getFromFile 指令实际上使用了 conditional directive internally. This can be shut off by configuring the RoutingSettings.