SpringBoot添加对静态文件css/html/jpg等的直接访问的支持
2019/3/2更新
使用这个方法时候如果遇到`LazyInitializationException`,请按照如下方法解决:
一、在你的项目启动类中加入这个方法
@Bean public OpenEntityManagerInViewFilter openEntityManagerInViewFilter(){ return new OpenEntityManagerInViewFilter(); }
二、在你的项目配置文件(比如:application.properties)中加入
spring.jpa.open-in-view=true
----原文----
解决对策
解决方法是配置WebMvcXXX(多说一句WebMvcConfigurerAdapter在Spring新版本已经过时,因此再看相应的解决方案请慎重)比如新建一个文件WebStaticResourceConfigure.java,然后码上如下代码:
@Configuration public class WebStaticResourceConfigure extends WebMvcConfigurationSupport { @Override public void addResourceHandlers(ResourceHandlerRegistry registry){ /* * * 根据系统标识来判断合适的文件路径格式 * * 下面将路径中的/img/XX.jpg映射到文件系统中的D:/static/img/XX.jpg或者Unix下的/var/static/img/XX.jpg * * 如果需要映射的文件夹是在项目中的,比如resource/static, * 可以使用.addResourceLocations("classpath:/static/") */ String os = System.getProperty("os.name"); final String windowsFlag = "win"; // windows if (os.toLowerCase().startsWith(windowsFlag)){ registry.addResourceHandler("/img/**") .addResourceLocations("file:D:\\static\\img\\"); //linux 和mac } else { registry.addResourceHandler("/img/**") .addResourceLocations("file:\\var\\static\\img\\"); } } }
如果没有解决你的问题,请不要放弃,继续在互联网上探索了。
五、引用及致谢
我只是知识的搬运工,这篇文章离不开他们:
[2] https://stackoverflow.com/questions/27381781/java-spring-boot-how-to-map-my-app-root-to-index-html
[3] https://blog.csdn.net/panxiaolan/article/details/81115120
以及其它参考过的网页
The END