赞
踩
这次做了这么一个需求,上传html字符串到服务器上,服务器生成html文件,并且能直接访问。因为是个小需求,所以就一台服务器,没有静态文件服务器,所以原先打算把html保存到resources/static文件夹下,然后127.0.0.1:8080/xxx.html就能直接访问静态文件,后来在idea上跑是没有问题,可以写入文件到resources/static文件夹下,但是打成jar包之后就没办法写jar包里面的resources/static文件夹了。后来没办法,只能放到jar包外面,也就是在项目外面配一个静态文件目录,但是怎么能在项目里返回项目外的html视图呢?这里我用了一个ResourceHandlerRegistry 做了一个映射,将/view/case/**路径的请求映射到E:\\server\\目录下,这样就能直接访问E:\\server\\下的静态文件了
@Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter { @Autowired private YmlProperties ymlProperties; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/view/case/**").addResourceLocations("file: E:\\server\\"); super.addResourceHandlers(registry); } }
这种写法不需要在yml中添加其他配置了,我看网上也有讲在yml中配置的,
- spring:
- resources:
- static-locations: file:D:/static/
但是我因为我用了拦截器,测试没有生效,后面有时间看下为什么拦截器会导致static-path-pattern等yml中的配置没有生效。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。