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

spring boot未启动静态web内容

蔺沛
2023-03-14

我正在尝试启动索引。我的spring boot应用程序中的html,但请参见404。我缺少什么依赖关系?

建筑gradle(多项目)

project('sub-project')
{
apply plugin: 'spring-boot'
compile (
    "org.springframework.boot:spring-boot-starter-web:1.0.0.RC5",
    "org.springframework.boot:spring-boot-starter-actuator:1.0.0.RC5"
.. few more app specific dependencies
)

项目结构:

MainProject
  -- sub-project
     src
       main
          resources
             index.html

应用程序类别:

@Configuration
@EnableAutoConfiguration
class Application {
    public static void main(String[] args) {
        SpringApplication.run([SpringServlet, Application, "classpath:/META-INF/com/my/package/bootstrap.xml"] as Object[], args)
    }
}

**Launching http://localhost:8080/index.html throws 404.**

共有2个答案

白高超
2023-03-14
@Configuration
public class WebConfig implements WebMvcConfigurer {

/** do not interpret .123 extension as a lotus spreadsheet */
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) 
    {
        configurer.favorPathExtension(false);
    }

/**
  ./resources/public is not working without this
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/**")
            .addResourceLocations("classpath:/public/");
}

}

暴德运
2023-03-14

找到了根本原因。将SpringServlet的Url映射更改为“Rest”资源特定路径修复了它。之前的“/*”也由SpringServlet解释,无法呈现索引。html。

class Application extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run([Application, "classpath:/META-INF/com/my/package/mgmt/bootstrap.xml"] as Object[], args)
    }

    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application);
    }

    @Bean
    ServletRegistrationBean jerseyServlet() {
        ServletRegistrationBean registration = new ServletRegistrationBean(new SpringServlet(), "/rest/*");
        Map<String, String> params = ["com.sun.jersey.config.property.packages": "com.my.package.mgmt.impl;com.wordnik.swagger.jersey.listing"]
        registration.setInitParameters(params)
        return registration;
    }

    @Bean
    ServletRegistrationBean jerseyJaxrsConfig() {
        ServletRegistrationBean registration = new ServletRegistrationBean(new DefaultJaxrsConfig(), "/api/*");
        Map<String, String> params = ["swagger.api.basepath": "http://localhost:8080/api", "api.version": "0.1.0"]
        registration.setInitParameters(params)
        return registration;
    }
 类似资料:
  • 我无法访问静态内容(angular app),甚至无法访问简单的索引。来自spring boot的html文件。我一直收到404错误。Spring没有为我提供这些静态文件。自从升级到Spring Boot 2.2.4后,我就遇到了这个问题。我必须升级以应对Zip64问题。 我的application.properties里有这样一句话: 我也有自己的staticResourceConfigurat

  • 因此,我正在IntelliJ开发一个spring boot应用程序。使用Gradle,我创建了sprint引导jar文件。 我很难确定将JSP和静态内容(如。js文件)放在哪里,这样运行jar和从IntelliJ内部运行都能正常工作!

  • 我正在尝试使用Spring MVC使用资源。我有一个WebApplicationContextConfig类,它扩展了WebMVCConfigureAdapter,并在其中重写了addResourceHandlers方法: 在文件夹资源中,我有三个图像。但是当我在浏览器中获取一些图像时,例如:http://localhost:8080/img/P123.jpeg我得到了404错误。 我错过什么了吗

  • 这个问题让我头疼。我有一个简单的controller类,它能够呈现一个简单的html页面以及Spring Boot初始化器类。 我已经将HTML页面放在src/main/resources目录下的静态文件夹中。但我无法获得html页面。相反,我得到了404个错误。 下面是我的项目的结构 simpleController.java: home.html: 运行Spring Boot时的控制台日志:

  • 在V9.0.0版本之前为下列对象分配内存采用动态的方式,在之后的版本才允许应用程序开发者自己静态的分配内存; 任务 软件定时器 队列 事件组 二值信号量 计数信号量 递归信号量 互斥量 当然,具体使用静态分配还是动态分配由开发者自己决定。 动态分配 动态分配的好处在于使用灵活简单、同时潜在的可以降低内存占用。 更少的函数参数 内存分配使用RTOS提供的API自动分配 应用程序开发者不需要自己去考虑