Spring启动服务静态资源

时间:2016-01-27 12:18:47

标签: java spring spring-boot

我在Spring启动应用程序上工作。我正试图用spring提供静态内容。 每当请求进入与模式匹配的URL时,都希望提供存储在/ c:/ frontend / files /目录中的资源:/ file / **:

 @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {

    registry
            .addResourceHandler("/file/**")
            .addResourceLocations("file:///C:/frontend/files/" );

}

但是当我尝试使用此网址访问此资源时:http://localhost:9999/file/app.min.js

我有这个问题

There was an unexpected error (type=Not Acceptable, status=406).
Could not find acceptable representation

2 个答案:

答案 0 :(得分:2)

我解决了这个问题。它与“spring-cloud-config-server”有关。我只是删除了这个配置:org.springframework.cloud spring-cloud-config-server

答案 1 :(得分:1)

听起来你的项目的文件夹结构是错误的。

代码应位于src/main/java下,资源(例如您的javascript)应位于src/main/resources下。您可以从几个不同的选项中实际提供文件。 spring.io博客上的This post有如下说法:

  

Spring Boot将自动添加位于以下任何目录中的静态Web资源:

  • /META-INF/resources/
  • /resources/
  • /static/
  • /public/

您还有另一个选择是使用webjars

就个人而言,我发现将这类文件放在src/main/resources/public下最容易。它始终对我没有任何问题。有趣的是,您可以在项目中的任何位置放置一个名为/public的文件夹,而spring-boot将提供文件。你需要非常小心它在src/main/resources/public之下,但是如果你使用像maven这样的构建工具,那么当你来构建.jar时,文件将不会在正确的位置。