Springboot 2.1.7.RELEASE中没有提供静态内容

时间:2019-08-28 14:59:34

标签: java spring spring-boot spring-mvc

在我的Springboot应用程序中,即使从日志消息中可以正常看到其余端点,我也遇到以下404错误。

我有一个带有以下主要类的springboot应用程序:-

package com.springbootbasic;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootBasicApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootBasicApplication.class, args);
    }

}

以下是控制器类:-

package com.springbootbasic;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


@Controller
public class HomeController {

    Logger logger = LoggerFactory.getLogger(HomeController.class);

    @RequestMapping("/hello")
    public String home(Model model) {
        logger.info("Rest endpoint /hello is being hit correctly.");
        return "index.html";
    }

    @RequestMapping("/home")
    @ResponseBody
    public String response() {
        logger.info("Rest endpoint /home is being hit correctly.");
        return "Very well done the rest end point is working fine.";
    }

}

以上两个类位于同一包中,并且HomeController带有@Controller而不是@RestController注释。

在eclipse的src / main / public源文件夹中,我创建了以下index.html文件。

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Welcome from Home</title>
</head>
<body>
  <h2>Hello World!</h2>
</body>
</html>

在浏览器中,当我点击网址http://localhost:8080/hello时 我收到以下错误:-

There was an unexpected error (type=Not Found, status=404).
No message available

但是日志消息是:-

2019-08-28 20:22:38.953  INFO 20864 --- [nio-8080-exec-1] c.springbootbasic.HomeController   : Rest endpoint /hello is being hit correctly.
2019-08-28 20:22:52.179  INFO 20864 --- [nio-8080-exec-3] c.springbootbasic.HomeController   : Rest endpoint /home is being hit correctly.
2019-08-28 20:25:20.858  INFO 20864 --- [nio-8080-exec-6] c.springbootbasic.HomeController   : Rest endpoint /hello is being hit correctly.

该如何解决?

2 个答案:

答案 0 :(得分:1)

问题是模板的名称。模板的名称为index,如果您点击http://localhost:8080/,则可以看到您的页面。我有同样的问题,如果您重命名index.html应该没问题。我不知道为什么会这样,这可能与spring-boot嵌入式服务器有关。

编辑:来自https://spring.io/guides/gs/serving-web-content/

  

index.html资源是特殊的,因为它用作“欢迎”   页”(如果存在),这意味着它将作为根   资源,即http://localhost:8080/

希望这会有所帮助。

答案 1 :(得分:1)

您应该创建Internal View Resolver并将其添加到您的配置适配器中