问题描述
我有一个小型的micronaut应用程序,需要在resources
内部提供文件。这些文件应该可以公开访问,因此,如果我输入该文件的网址,它将直接在浏览器中打开(它们是小图像)。
我尝试使用
micronaut:
application:
name: myapp
router.static-resources:
enabled: true
paths: classpath:data
mapping: "/**"
但响应始终相同:
{
"message": "Page Not Found","_links": {
"self": {
"href": "/data/per.svg","templated": false
}
}
}
我需要什么其他配置?
解决方法
您的配置中有两个问题:
- 您有
micronaut.router.static-resources.enabled
,但应为micronaut.router.static-resources.default.enabled
。因此default
丢失了。 - 您正在将存储在类路径中 data 目录中的静态资源映射到根 / Web路径。因此,您可以访问 http:// localhost:8080 / per.svg 上的 per.svg 文件。
但是最好使用单独的上下文,然后使用root来防止与控制器路径发生冲突。因此,您可以将其映射到 static ,例如:
micronaut:
application:
name: myapp
router:
static-resources:
default:
enabled: true
mapping: "/static/**"
paths: classpath:data
然后您可以在 http:// localhost:8080 / static / per.svg
上访问它