针对index.html显示404的Spring启动应用

时间:2016-01-08 21:10:17

标签: spring-boot

我有一个Spring启动应用程序和一个位于src / main / resources / static

中的静态index.html文件

我的控制器很直接,看起来像这样

@Controller
@Log4j
public class StartController {

    @Autowired
    OwnerRepository ownerRepository;

    @RequestMapping("/")
    public String index() {
        return "index";


    }

}

我唯一的配置是主配置,它只有@SpringBootApplication 我点击URL时得到404,根据我的理解,不需要进一步的配置 顺便说一句,在启动日志中看到以下内容

  

请求[/ index]的URI模板变量是{}

这是我的POM

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.datasol</groupId>
    <artifactId>alquifacil</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <name>AlquiFacil</name>
    <description>spring boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.1.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

3 个答案:

答案 0 :(得分:1)

在你的pom.xml上,我没有看到像Thymeleaf,Velocity ecc这样的模板引擎,但是你有 spring-boot-starter-web ,所以基本上你资源文件夹可以配置, 但是您应该将文件index.html放在模板文件夹中。静态文件夹用于包含您的资产文件。

如果您在当地工作,请尝试: localhost:8080/localhost:8080/alquifacil/假设您正在使用端口8080或在pom.xml中添加模板引擎依赖项,例如Thymeleaf

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

答案 1 :(得分:1)

html是一种静态资源 所以你可以通过“localhost:8080 / index.html”访问 要么 使用“转发”关键字

@RequestMapping("/")
public String index() {
   //has to be without blank spaces
   return "forward:index.html";
}

答案 2 :(得分:1)

请删除目标文件并重新运行。这可能是一个兑现问题。