spring 资源处理程序未处理 /../**
spring Resource handler not handling /../**
我正在使用 spring 启动 thymeleaf,我的所有资源都在 spring 应用程序之外,路径类似于 "/../../css/main.css"
。在 dev env 上应该使用 url 解析路径,并且 live env 继续路径。
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String templates=env.getProperty("spring.thymeleaf.prefix");
registry.addResourceHandler("/../../css/**")
.addResourceLocations(templates);
}
// spring.thymeleaf.prefix = http://website.com/assets/
为什么资源处理程序不处理这些类型的资源,但如果我 "/**"
处理没有问题?我错过了什么吗?
编辑:如果 resourceHandler
是 "/css/**"
并且位置是 url 也没有被处理
我很确定在 addResourceHandler 中使用 .. 是无效的,但我没有具体的文档来支持它。该路径描述了一种模式,即服务器获取的不是浏览器中列出的内容。来自函数文档:"based on the specified URL path patterns"。如果您从浏览器中引用 .. ,它仍将更改为要发送到服务器的某个绝对路径。这就是为什么您的其他版本可以正常工作的原因。
您无法根据需要引用外部资源,因为解析器正在从 classpath
寻找资源。
试着像本期那样做 - or in this - How do I use Spring Boot to serve static content located in Dropbox folder?
我正在使用 spring 启动 thymeleaf,我的所有资源都在 spring 应用程序之外,路径类似于 "/../../css/main.css"
。在 dev env 上应该使用 url 解析路径,并且 live env 继续路径。
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String templates=env.getProperty("spring.thymeleaf.prefix");
registry.addResourceHandler("/../../css/**")
.addResourceLocations(templates);
}
// spring.thymeleaf.prefix = http://website.com/assets/
为什么资源处理程序不处理这些类型的资源,但如果我 "/**"
处理没有问题?我错过了什么吗?
编辑:如果 resourceHandler
是 "/css/**"
并且位置是 url 也没有被处理
我很确定在 addResourceHandler 中使用 .. 是无效的,但我没有具体的文档来支持它。该路径描述了一种模式,即服务器获取的不是浏览器中列出的内容。来自函数文档:"based on the specified URL path patterns"。如果您从浏览器中引用 .. ,它仍将更改为要发送到服务器的某个绝对路径。这就是为什么您的其他版本可以正常工作的原因。
您无法根据需要引用外部资源,因为解析器正在从 classpath
寻找资源。
试着像本期那样做 -