美文网首页
静态资源

静态资源

作者: 已迁至知乎_此不再维护 | 来源:发表于2018-06-12 10:05 被阅读0次

    Spring boot静态资源虐我千百遍,今天终于掌握了。

    Spring boot的默认配置

    1. 默认所有请求都将过静态资源目录,匹配到就给,匹配不到就找Controller(又名Handler)
    2. 默认静态资源应该放在/static或/public或/resources,如果资源放在这几个目录下,则能被找到

    如何修改默认配置

    1. 定义配置类,继承自WebMvcConfigurerAdapter,重写addResourceHandlers方法
    2. 在属性文件中重写
    spring.resources.static-locations=classpath:/static/,classpath:/views/  ##定义静态资源放置的目录
    spring.mvc.static-path-pattern=/** ##定义所有请求都将过静态资源目录
    

    代价:重写方法作为特殊需求的补充,默认配置依然有效。属性文件中重写,默认的就不起效了。

    映射本地磁盘图片(文件)

    为江总实现图片上传功能的时候,图片上传之后,要映射到D盘的目标文件夹,发现怎么配置都没用,图片在浏览器中就是渲染不出来,最后发现是IndexController中的 index方法将/**映射给了 this is project字符串了

    页面中,如何通过标签引用js、css等静态资源?

    这一块内容是自己悟出来的,特别有成就感:

    1. 如果通过项目名+文件路径访问,则页面中的js、css文件的引用路径则相对于项目路径
    2. 如果通过调用接口方式访问页面,则页面中的js、css文件的引用路径则相对于接口路径

    同一份js,在不同情况下的引用方式,如下所示:

    <script src="../../../js/vue.min.js"></script>    ##存在于某个接口指向的html文件。
    <script src="js/vue.min.js"></script>             ##存在于项目的index.html文件。
    

    可以知道:../不但可以跳转文件路径,还可以抵消接口的类映射与方法映射。
    同时可以知道,在开发时,请求路径中的项目名不能省略,应与生产环境中的保持一致,否则需要增加或删除../

    它山之石
    Spring Boot 系列(四)静态资源处理
    Spring Boot 静态资源处理
    Spring Boot 静态资源处理

    相关文章

      网友评论

          本文标题:静态资源

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