为什么我的控制器中的根路径映射到 spring 引导 Web 应用程序中的 index.html?
Why does root path in my controller maps to index.html in spring boot web application?
我正在测试 Spring 启动应用程序的控制器。我想将资源映射到路径,这应该是我的 API 的一部分。
我的控制器对路径非常具体:
@Controller
public class DefaultController
{
@RequestMapping("${web-interface}")
public String main()
{
return "index.html";
}
}
这里'web-interface'是一个属性,在application.yml文件中指定
spring:
datasource:
url: jdbc:mysql://localhost:3306/search-engine
username: landsreyk
password: 12345678
jpa:
database-platform: org.hibernate.dialect.MySQLDialect
show-sql: false
hibernate:
ddl-auto: none
web-interface: /admin
预期行为:
路径:localhost:8080/admin 映射到 index.html 资源
根路径:localhost:8080/ 映射为空,即 404 错误。
实际行为:
路径:“/admin”映射到 index.html
路径:“/”也映射到 index.html
但是为什么呢?我不应该只看到“Whitelabel Error Page”吗?没有控制器,它将根路径映射到 index.html 文件。没有任何意义。
顺便说一下,这是我的项目结构。
解法:
将 index.html 重命名为任何其他名称,例如 main.html 并且根路径“/”将不再映射到该资源。
根路径 "/" 默认映射到 index.html。它是所有语言和框架的标准。 index.html 是您应用程序的入口点
这是每个入口点的默认行为。 DefaultController
实现了默认行为,这就是为什么调用 "/" 或 "/root" 无关紧要的原因。
更多信息:https://docs.spring.io/spring-boot/docs/2.6.1/reference/htmlsingle/#web.servlet.spring-mvc.welcome-page
我正在测试 Spring 启动应用程序的控制器。我想将资源映射到路径,这应该是我的 API 的一部分。 我的控制器对路径非常具体:
@Controller
public class DefaultController
{
@RequestMapping("${web-interface}")
public String main()
{
return "index.html";
}
}
这里'web-interface'是一个属性,在application.yml文件中指定
spring:
datasource:
url: jdbc:mysql://localhost:3306/search-engine
username: landsreyk
password: 12345678
jpa:
database-platform: org.hibernate.dialect.MySQLDialect
show-sql: false
hibernate:
ddl-auto: none
web-interface: /admin
预期行为:
路径:localhost:8080/admin 映射到 index.html 资源
根路径:localhost:8080/ 映射为空,即 404 错误。
实际行为:
路径:“/admin”映射到 index.html
路径:“/”也映射到 index.html
但是为什么呢?我不应该只看到“Whitelabel Error Page”吗?没有控制器,它将根路径映射到 index.html 文件。没有任何意义。
顺便说一下,这是我的项目结构。
解法:
将 index.html 重命名为任何其他名称,例如 main.html 并且根路径“/”将不再映射到该资源。
根路径 "/" 默认映射到 index.html。它是所有语言和框架的标准。 index.html 是您应用程序的入口点
这是每个入口点的默认行为。 DefaultController
实现了默认行为,这就是为什么调用 "/" 或 "/root" 无关紧要的原因。
更多信息:https://docs.spring.io/spring-boot/docs/2.6.1/reference/htmlsingle/#web.servlet.spring-mvc.welcome-page