当前位置: 首页 > 知识库问答 >
问题:

如何在SpringBoot2.2.6中为静态内容提供服务?

袁何平
2023-03-14

我是Springboot的新手,我正在尝试在其根(localhost:8080)路径上显示html页面。我在谷歌上搜索了一下-

  1. Spring Boot不提供静态内容
  2. https://spring.io/blog/2013/12/19/serving-statige-web-content-with-spring-boot
  3. Spring Boot应用程序不提供静态内容
  4. SpringBoot不提供静态内容

我几乎试了所有的办法,但没有一个对我有效。

除了index.html文件之外,它在根路径中显示了Spring data api的列表,而指向index.html之外的url(localhost:8080/test.html)也存在同样的问题。

通过实现公共类StaticResourceConfiguration使用此配置实现WebMVCConfigureer,该问题不会产生任何影响。

共有1个答案

顾宸
2023-03-14

...我们可以将静态(html)文件放入以下其中之一:

  • (src/main/resources:)
  • 静态
  • 资源
  • 公用
  • 元中频
    • 资源

    这将导致通过spring.resources.static-locations属性配置的默认(类路径)位置。

      null

    因此:http://localhost:8080/test.html没有问题...

    在Github结账。

    因此,这至少回答了“问题标题”“如何在SpringBoot2.2.6中服务静态内容?”。

    WARN ... o.s.web.servlet.PageNotFound             : No mapping for GET /
    WARN ... o.s.web.servlet.PageNotFound             : No mapping for GET /index.html
    WARN ... o.s.web.servlet.PageNotFound             : No mapping for GET /test.html
    

    使用“非默认配置”,您必须提供更多的细节,以找到一个特定的解决方案。

    但是对于“Springboot中的新手”来说:从一个intializer和“the defaults”开始听起来是最好的!从现在开始,您可以根据一个工作的配置重新优化您的配置。

    并且如果您出于某种原因想要/需要@enablewebmvc注释,这将再次导致“previous”行为/恢复(2.2.6)默认静态内容处理:

    @EnableWebMvc
    @SpringBootApplication
    public class DemoApplication implements WebMvcConfigurer {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry
              .addResourceHandler("/**")
              .addResourceLocations("classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/");
    
        }
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
    }
    

 类似资料:
  • 我正在通过spring boot启动一个嵌入式tomcat,并希望提供一个静态索引。html页面作为正在运行的应用程序的一部分。 但以下方法不起作用: 结果:当我调用localhost:8080时,我只看到单词“index”,而没有看到我的html页面。为什么?

  • 我无法访问静态内容(angular app),甚至无法访问简单的索引。来自spring boot的html文件。我一直收到404错误。Spring没有为我提供这些静态文件。自从升级到Spring Boot 2.2.4后,我就遇到了这个问题。我必须升级以应对Zip64问题。 我的application.properties里有这样一句话: 我也有自己的staticResourceConfigurat

  • 我有一个小型java webapp,由三个微服务组成——api-service、book-service和db-service,所有这些都使用mini kube本地部署在kubernetes集群上。 我计划为api-service和book-service保留单独的UI,从单独的pod提供常见的静态文件,可能是映像。 我能够创建一个前端,为参考本教程的nginx:alpine中的静态文件提供服务。

  • 问题内容: 我正在探索Go的深度,并且我一直在尝试编写一个简单的Web应用程序来围绕所有内容。我正在尝试服务React.js应用程序。 下面是Go服务器的代码。我有默认的服务路线,效果很好。我正在努力允许将静态文件提供给该索引文件。尽管我需要静态提供JavaScript / CSS / Media文件,但我允许React App自己进行客户端路由。 例如,我需要能够将文件提供给React应用程序才

  • 问题内容: 我无法让Spring-boot项目提供静态内容。 我已经放在一个命名的文件夹下。在其中,我有一个名为的文件夹。当我打包应用程序并运行它时,它找不到我放在该文件夹中的图像。 我试图把静态文件中,并但没有任何工程。 如果我我可以看到文件在正确文件夹的jar中:例如,但是调用:http://localhost:8080/images/head.png,我得到的只是一个404 有什么想法为什么

  • 问题内容: 我在两个不同的容器(Tomcat和Jetty)上部署了一个webapp,但是它们用于提供静态内容的默认servlet具有处理我要使用的URL结构的不同方式(详细信息)。 因此,我希望在web应用程序中包含一个小型servlet,以提供其自己的静态内容(图像,CSS等)。Servlet应该具有以下属性: No external dependencies Simple and reliab