做web开发的时候,我们往往会有很多静态资源,如html、图片、css等。那如何向前端返回静态资源呢?
以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问。
但是,基于Spring boot的工程并没有这个目录,那我们应该怎么处理?
一、最笨的方式
我们首先来分享一种最笨的办法,就是将静态资源通过流直接返回给前端,我们在maven工程的resources的根目录下建立一个html的目录,然后我们把html文件放在该目录下,并且规定任何访问路径以/static/开头的即访问该目录下的静态资源,其实现如下:
-
@Controller
-
public class StaticResourceController {
-
-
@RequestMapping("/static/**")
-
public void getHtml(HttpServletRequest request, HttpServletResponse response) {
-
String uri = request.getRequestURI();
-
String[] arr = uri.split("static/");
-
String resourceName = "index.html";
-
if (arr.length > 1) {
-
resourceName = arr[1];
-
}
-
String url = StaticResourceController.class.getResource("/").getPath() + "html/" + resourceName;
-
try {
-
FileReader reader = new FileReader(new File(url));
-
BufferedReader br = new BufferedReader(reader);
-
StringBuilder sb = ne