Micronaut:使资源内的文件公开可用

Ale*_*dro 2 java micronaut

我有一个小型 micronaut 应用程序,我需要在其中提供文件resources。这些文件应该是可公开访问的,因此如果我输入该文件的网址,它将直接在浏览器中打开(它们是小图像)。

我尝试使用

micronaut:
  application:
    name: myapp
  router.static-resources:
    enabled: true
    paths: classpath:data
    mapping: "/**"
Run Code Online (Sandbox Code Playgroud)

但反应总是一样的:

micronaut:
  application:
    name: myapp
  router.static-resources:
    enabled: true
    paths: classpath:data
    mapping: "/**"
Run Code Online (Sandbox Code Playgroud)

我需要什么额外配置?

cgr*_*rim 6

您的配置有两个问题:

  1. 你有micronaut.router.static-resources.enabled,但应该是micronaut.router.static-resources.default.enabled。所以default缺少了。
  2. 您正在将类路径中数据目录中存储的静态资源映射到 root / web 路径。因此,您可以在http://localhost:8080/per.svg上访问该per.svg文件。

但最好使用单独的上下文而不是根,以防止与控制器路径发生冲突。因此,您可以将其映射到静态,例如:

micronaut:
  application:
    name: myapp
  router:
    static-resources:
      default:
        enabled: true
        mapping: "/static/**"
        paths: classpath:data
Run Code Online (Sandbox Code Playgroud)

然后你可以在http://localhost:8080/static/per.svg上访问它