• Spring Boot中静态资源(JS, 图片)等应该放在什么位置


    Spring Boot的静态资源,比如图片应该放在什么位置呢, 如果你放在传统WEB共的类似地方, 比如webapp或者WEB-INF下,你会得到一张示意文件未找到的破碎图片。那应该放哪里呢? 百度一搜, 各种长篇大论,让人头痛。

    1. 默认位置:

    Spring Boot能大大简化WEB应用开发的原因, 最重要的就是遵循“约定优于配置”这一基本原则。Spring Boot的关于静态资源的默认配置已经完全满足绝大部分WEB应用的需求。没必要去弄手续繁杂的自定义,用Spring Boot的约定就好了。

    在Maven 工程目录下,所有静态资源都放在src/main/resource目录下,结构如下:

    复制代码
    src/main/resource
              |__________static
                            |_________js
                            |_________images
                            |_________css
                     .....
    复制代码

    例如,imges目录下的demo.jpg 在HTML/JSP中访问是的路径就是<img src="/images/demo.jpg">, 因为Spring Boot的缺省工作目录就是src/main/java, 当访问资源时,就是src/main/resources, 而/static/**被SPRING BOOT被映射到了classpath:/static下。所以也可以不带起始的“/”,直接写成<img src="images/demo.jpg">。

    以下代码示例为Hello World 加了个图片显示, 这里的demo.jpg在maven工程的位置存放就是src/main/resource/static/images/demo.jpg,

    可用<img src="image/demo.jpg">访问

    复制代码
    @Controller
    //@EnableAutoConfiguration
    public class HelloController {
        @RequestMapping("/")
        @ResponseBody
    public String hello() {
            return "hello world <img src="image/demo.jpg">";
        }
    }
    复制代码

    2. 添加自定义:

    注意是添加,不是替换,添加不影响原来的默认约定。非要自定义,那就配置类继承WebMvcConfigurerAdapter 

    复制代码
    @Configuration
    public class MyWebAppConfig extends WebMvcConfigurerAdapter {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/myResource/**").addResourceLocations("classpath:/myResource/");
            super.addResourceHandlers(registry);
        }    
    }
    复制代码

    这个是添加了一个新位置:

    src/main/resource
              |__________myResource

    如果newDemo.jpg放在src/main/resource/myResource/images/newDemo.jpg,那么就可用<img src="image/newDemo.jpg">访问

  • 相关阅读:
    pymysql
    flask WTForms
    线程安全问题
    flask学习2
    @functools.wraps(func)
    Solidity开发神器Remix
    Web3j实现智能合约
    基于Ubuntu Docker环境下进行以太坊实践
    以太坊RLP机制分析
    以太坊网络服务分析
  • 原文地址:https://www.cnblogs.com/wojiaochuichui/p/9287852.html
Copyright © 2020-2023  润新知