【问题标题】:How to serve static resource in springboot having custom path from Controller?如何在具有来自控制器的自定义路径的 Spring Boot 中提供静态资源?
【发布时间】:2021-05-25 12:20:17
【问题描述】:

我有这个资源处理程序,我可以调用位于不同位置的静态网页,但我试图从控制器类调用我无法获取页面

@Configuration
public class Static_ResourceHandler implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/system/files/**").addResourceLocations("file:/home/niteshb/Documents/data");
    }
}

这就是我所说的

http://localhost:8080/system/files/test.html

但是如何从控制器调用它,我正在尝试这样的事情但它不起作用 这是我的控制器类调用..

    @GetMapping("/")
    public String getfile() {
        return "test.html";
    }

【问题讨论】:

  • 删除@EnableWebMvc并重新启动,同时在资源位置前加上file:
  • 显示相同的问题@M.Deinum,我已经编辑了问题
  • 那是静态文件还是百里香模板?
  • 它的简单html文件@M.Denium

标签: java spring spring-boot spring-mvc


【解决方案1】:

/system/files/ 创建一个 Get 映射,您已为其创建了资源处理程序, 并在新创建的方法中返回文件。

@GetMapping("/system/files/")
public String getStaticfile() {
    return "/system/files/test.html";
}

希望这会奏效。

【讨论】:

  • 您确定您的资源文件路径正确吗?我一般使用格式为:file:///home/.../.../data/考虑到静态文件在data文件夹内
  • 我有ubuntu,所以文件目录路径和windows不一样..是的,路径没问题..直接访问localhost:8080/system/files/test.html工作,我想从控制器@jay调用
  • @user15895291 刚刚更新了我的答案。那应该可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 2020-05-15
  • 1970-01-01
  • 2021-10-11
相关资源
最近更新 更多