spring资源处理程序不处理/../**

时间:2016-03-23 13:41:54

标签: spring-mvc spring-boot thymeleaf

我使用带有百里香的弹簧靴,我的所有资源都在"/../../css/main.css"之类的路径上弹簧应用之外。在开发环境中应该使用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/**"且位置未处理,则

2 个答案:

答案 0 :(得分:1)

我很确定在addResourceHandler中使用..是无效的但我没有特定的文档来备份它。该路径描述的是服务器获取的模式,而不是浏览器中列出的模式。从函数doc:"基于指定的URL路径模式"。如果您从浏览器引用..仍将更改为某个绝对路径以发送到服务器。这就是你的其他版本没有问题的原因。

答案 1 :(得分:1)

您无法根据需要引用外部资源,导致解析程序从classpath查找资源。

尝试按照此问题执行此操作 - Add external resources folder to Spring Boot或此处 - How do I use Spring Boot to serve static content located in Dropbox folder?