【问题标题】:How to serve static files from file system with Quarkus如何使用 Quarkus 从文件系统提供静态文件
【发布时间】:2022-08-09 23:54:16
【问题描述】:

我在 ngnix Web 服务器后面运行 Quarkus 应用程序服务器(通过 HTTP 服务 REST)。现在我想使用相同的基本 url 从文件系统提供静态内容(Flutter web-app)。让 ngnix 服务它会做到这一点,但我也想将 Quarkus application.properties 中配置的访问控制用于 Web 应用程序部分。

难道不能让我的 Quarkus 服务器也提供静态的东西吗?

由于服务器和应用程序位于单独的存储库中并单独维护,因此这两个部分都应该可以独立部署。

我希望这是一个常见问题,但找不到简单的解决方案。

有什么提示吗?

  • 如果我理解正确,您希望 Quarkus 应用程序能够从文件系统上的特定目录提供静态文件吗?
  • 对,就是这样。我对其他建议持开放态度,但这看起来像是解决问题的方法。我还考虑过将静态文件即时添加到已经部署的 jar 中。更像是一种解决方法。
  • 您必须在生成的 JAR 中包含资源。 Quarkus 不提供使用随机文件系统目录来提供静态文件的任何配置。

标签: quarkus


【解决方案1】:

您可以通过以下方式利用 Quarkus Reactive Routes

@ApplicationScoped
public class StaticAuthenticatedDeclarativeRoute {

    @Route(path = "/auth-static/*", methods = Route.HttpMethod.GET)
    @Authenticated
    void secureStatic(RoutingContext rc) {
        StaticHandler.create(FileSystemAccess.RELATIVE, "content/").handle(rc);
    }

}

并考虑使用FileSystemAccess.ROOT 也可以是绝对路径。

【讨论】:

    【解决方案2】:

    我有同样的问题(但不是从文件系统服务的要求)。

    根据Quarkus documentation - HTTP Reference可以做什么:

    将您的静态网页内容放入应用程序的META-INF/resources 目录。

    然后构建您的 quarkus 应用程序并进行部署。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 2019-09-19
      • 2023-03-13
      • 2012-06-07
      • 2018-09-21
      • 2016-11-13
      • 2014-01-12
      相关资源
      最近更新 更多