如果你也是用这个种方法去映射静态文件,那么,你可以继续往下看了。
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
logger.debug("addResourceLocations file path = {}",uploadBasePath);
registry.addResourceHandler("/files/**").addResourceLocations("file://"+uploadBasePath);
//将所有/static/** 访问都映射到classpath:/static/ 目录下
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
super.addResourceHandlers(registry);
}
重点就看红色这句就好,在里linux下是没有问题的,介但是在windwos下就可能有问题了,如果windwos下你的uploadBasePath="E://uploadFile/",那么程序就会出问题了,会报
ERROR o.a.c.c.C.[.[.[/factory].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/factory] threw exception
java.net.UnknownHostException: E
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)................
这是因为它读取错了,网络(路径)格式不对,应该在uploadBasePath前加一个“/”,即uploadBasePath="/E://uploadFile/"
因为之前一直在linux下开发,没出现过这个问题,今天就吃大亏了。。。。。。。。。几乎一天时间都在找错中。