使用Micronaut提供静态资源服务,包括目录结构。

5
application.yml中给定以下配置,我希望能够从以下路径中提供文件:
  • http://localhost/static/image.png (来自/root/static/image.png)
  • http://localhost/static/folder/image.png (来自/root/static/folder/image.png)
然而,只有第一个路径起作用。第二个返回200状态码,并在响应正文中返回以下内容:{"message":"Page Not Found","_links":{"self":{"href":"/static/folder/image.png","templated":false}}} 问题似乎是多了一个子目录,但我本来期望映射字段中的**/*允许子目录。FWIW,如果请求不存在的资源,我会得到相同的错误。
这是在Micronaut 2上发生的。
micronaut:
  application:
    name: api
  router:
    static-resources:
      default:
        paths: file:/root/static
        mapping: /static/**/*
        enabled: true


2
**/* 对我来说并没有按照你期望的方式工作(micronaut 版本 2.1.4),所以我怀疑问题可能出现在其他地方。请记住,如果“文件夹”目录或您尝试访问其中的文件由于操作系统级别的权限限制而对 micronaut 进程不可访问,则会出现您遇到的错误。 - Diego Veralli
啊!有时候你会被细节冲昏头脑。我的“文件夹”名字是 v1_0_1,但我却试图用 v_1_0_1 的URL来下载它。我一直认为这是配置文件的问题。感谢Diego让我跳出Java的思维定势。 - psyklopz
1个回答

2
< p > paths 键应该是一个列表(如复数所示):

  router:
    static-resources:
      default:
        paths: 
          - file:/root/static
        mapping: /static/**/*
        enabled: true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接