我正在尝试在Universal Links的iOS应用中添加支持。因此,我们的服务器需要在路径/.well-known/apple-app-site-association
上提供json文件。我在文件夹apple-app-site-association
中创建了文件名为src/main/resources/well-known/
的文件,并将以下内容添加到我们的应用程序配置中:
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry)
{
registry.addResourceHandler(".well-known/**").addResourceLocations("classpath:/well-known/");
}
然而,这导致来自服务器的404。在尝试了很多不同的事情之后,我发现如果我把这个点拿出来:
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry)
{
registry.addResourceHandler("well-known/**").addResourceLocations("classpath:/well-known/");
}
并导航到/well-known/apple-app-site-association
,它工作得很好。但是,它需要在网址中包含.
。
我有什么办法让这项工作成功吗?我们使用的是Spring 4.3.7和Spring Boot 1.4.5。
答案 0 :(得分:0)
在深入研究这个问题时,我在Javadoc中看到addResourceHandler
以下内容:
Patterns like "/static/**" or "/css/{filename:\\w+\\.css}"} are allowed.
因此,我将映射更新为如下所示:
registry.addResourceHandler("{filename:\\.well-known}/**").addResourceLocations("classpath:/well-known/");
在此更改后,事情按预期工作。我发现在冒号之前放什么并不重要,所以这就是我最终得到的结果:
registry.addResourceHandler("{wellKnownFolder:\\.well-known}/**").addResourceLocations("classpath:/well-known/");