Spring Boot返回字符串而不是.html文件 [英] spring boot return string instead of .html file
问题描述
我尝试运行spring boot应用程序,该应用程序将在静态文件夹中返回HTML静态文件, 问题是:每次加载页面:127.0.0.1我得到的是字符串"bakara",而不是HTML文件bakara.html. 当我加载127.0.0.1/bakara.html时,我得到了bakara.html文件
I tried to run spring boot application, that will return me the HTML static file on the static folder, the problem was: every time I load the page: 127.0.0.1 I get the String "bakara" and not the HTML file bakara.html. and when I load 127.0.0.1/bakara.html I get the bakara.html file
pom.xml:
<?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>il.mda.ks</groupId>
<artifactId>mdaForm</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>mdaForm</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- This is a web application -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Tomcat embedded container -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- JSTL for JSP -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- Need this to compile JSP -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- Need this to compile JSP, tomcat-embed-jasper version is not working,
no idea why -->
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>4.6.1</version>
<scope>provided</scope>
</dependency>
<!-- Optional, test for static content, bootstrap CSS -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.7</version>
</dependency>
</dependencies>
application.properties:
application.properties:
#spring.mvc.view.prefix=/static/
#spring.mvc.view.suffix=.html
spring.mvc.view.prefix=/static
spring.mvc.view.suffix=.html
HomeController.java:
HomeController.java:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
public class HomeController {
@RequestMapping("/")
@ResponseBody
public String welcome() {
return "bakara";
}
}
项目结构:
|── src
│ ├── main
│ │ ├── java
│ │ │ └── il
│ │ │ └── mda
│ │ │ └── ks
│ │ │ └── mdaForm
│ │ │ ├── BakaraController.java
│ │ │ ├── HomeController.java
│ │ │ └── MdaFormApplication.java
│ │ └── resources
│ │ ├── application.properties
│ │ ├── static
│ │ │ ├── assets
│ │ │ ├── bakara.html
│ │ │ ├── succeed.html
│ │ │ └── TokenDenied.html
│ │ └── templates
推荐答案
默认为Spring Boot外观templates
文件夹中的html模板static
文件夹用于其他文件,例如css and js
.尝试移动html文件在src/main/resources/templates
文件夹中,然后从控制器方法中删除@ResponseBody
,并从应用程序属性spring.mvc.view.prefix=/static
中将其删除.我希望它能起作用.
By Default Spring Boot Looks For your html templates in templates
folder static
folder is for your other files like css and js
.Try moving your html files in src/main/resources/templates
folder and remove @ResponseBody
from your controller method and remove this from your application properties spring.mvc.view.prefix=/static
. I hope it will work.
这篇关于Spring Boot返回字符串而不是.html文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!