样式不显示,静态资源路径错误

样式不显示,静态资源路径错误

  • 项目目录


问题

  • SpringBoot应用,使用thymeleaf模板引擎。

    通过IndexController的loginPage方法,访问页面login.html

    发现样式显示不出

  • IndexController

    @Controller
    @RequestMapping("/web")
    public class IndexController {
    
        @GetMapping(value = {"/", "/login"})
        public String loginPage() {
            return "login";
        }
        
    }
    
  • login.html中引用css的片段

    <link href="css/style.css" rel="stylesheet" >
    <link href="css/style-responsive.css" rel="stylesheet" >
    

解决:

引用css改成

<link href="/css/style.css" rel="stylesheet" >
    <link href="/css/style-responsive.css" rel="stylesheet" >

原因:

1.前提知识

href="css/style.css" 的路径不加/是当前路径,加/是文件所在目录的一级目录。


2.猜测原因

IndexController加了映射路径/web,最后所有静态资源(包括static和templates目录下的文件和目录)会放在xxx路径的web目录下。

href="css/style.css"访问的仍是原来的根路径下。

href="/css/style.css"会从现在的现在的项目路径,也就是xxx路径的web目录下访问

posted @ 2021-07-23 18:12  musecho  阅读(165)  评论(0编辑  收藏  举报