美文网首页
springboot+springsecurity 静态资源路径

springboot+springsecurity 静态资源路径

作者: _gitignore | 来源:发表于2020-03-22 17:06 被阅读0次

import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


import javax.servlet.MultipartConfigElement;

/**
 * @author Loggyf
 */

@Configuration
//@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry){
        registry.addViewController("/").setViewName("home");
        registry.addViewController("/new").setViewName("new");
        registry.addViewController("/login").setViewName("login");
        registry.addViewController("/about/new/update").setViewName("about/new/update");
        registry.addViewController("/shareContent").setViewName("shareContent");
    }

    /**
     * 添加对webjars的支持,
     * 将/webjars/** 自动解析到resources/webjars/,
     * 
     * 最重要的是 把static 映射到 classpath:/META-INF/resources/ 
     * 
     */
  
         @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/META-INF/resources/static/");

        //是classpath:/META-INF,不是/classpath:META-INFO/resoureces/webjars,区别很大的!!
    }

image.png
<div th:each="city:${cities}">
        <p th:text="${city.name}">城市</p>
        <p th:if="${city.getHot()}"><img src="/img/hot.svg" alt="热门城市"></p>
    </div>

最重要的是 把static 映射到 classpath:/META-INF/resources/

static映射之后,使用/static/**下面的资源是可以直接使用资源路径,不要写出static,否则引入失败
像下面一样使用即可

<link rel="stylesheet" th:href="@{/css/layout.css}">
<p th:if="${city.getHot()}"><img src="/img/hot.svg" alt="热门城市"></p>

前面定义了webjars的位置
在html中可以这样使用

<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" th:href="@{/webjars/bootstrap/3.3.1/css/bootstrap.css}">
  <title>Title</title>
</head>

如果不使用th:href.就需要使用相对路径。

如果你的html位于多个目录里,就有可能出现

  <link rel="stylesheet" href="../webjars/bootstrap/3.3.1/css/bootstrap.css">
  <link rel="stylesheet" href="../../webjars/bootstrap/3.3.1/css/bootstrap.css">
  <link rel="stylesheet" href="../../../webjars/bootstrap/3.3.1/css/bootstrap.css">

这样不但很难读,而且增加了维护成本

在Thymeleaf中使用Bootstrap的modal("show")显示 modal is not a function...

需要先引入jquery.js
此外,还要注意版本的搭配。以Bootstrap3.3.1为例,最好搭配jqueery1.9.1

相关文章

网友评论

      本文标题:springboot+springsecurity 静态资源路径

      本文链接:https://www.haomeiwen.com/subject/gorvyhtx.html