资源文件夹中的java spring images不可用(404错误)

时间:2015-04-30 16:54:59

标签: java spring spring-mvc resources

我正在使用版本4.1.5中的Spring Framework开发Web应用程序

我已经配置并正确设置了资源文件夹,并且已经加载了css,js和image文件。

<mvc:resources mapping="/images/**" location="/resources/" />

但是,我也使用资源文件夹将图像上传到其中并在前端显示它们。还有一点,我目前陷入困境,并没有继续我的理解。我收到404错误(资源不可用),而其他人工作得非常好。路径都是正确的,文件已成功上传,我很确定。

我也看到了相反的效果 - 重命名甚至从资源文件夹中删除资源不会影响他们对其网址的可访问性。我在构建应用程序时没有将任何文件复制到另一个文件夹,所以我在资源文件夹中处理这些文件。我也在我的文件系统上查找了文件名而不再存在,所以我认为必须有一些缓存。

Spring是否在启动时在现有资源文件上构建索引或缓存?上传文件后我是否必须刷新任何ApplicationContext以通知框架文件系统中的更改,如果是,我该怎么做?

希望有人可以帮助我:)

谢谢你, 汤姆

编辑: 调用URL时:localhost:8080 / EstelV2 / images / testimage.jpg

我遇到404资源不可用,即使testimage.jpg在文件系统上的文件夹结构正确并获得日志输出:

2015-04-30 22:13:05,035 - [DEBUG] - [http-nio-8080-exec-4] (DispatcherServlet.java:845) - DispatcherServlet with name 'spring-dispatcher' processing GET request for [/EstelV2/images/testimage.jpg] 2015-04-30 22:13:05,035 - [DEBUG] - [http-nio-8080-exec-4] (AbstractHandlerMethodMapping.java:297) - Looking up handler method for path /images/testimage.jpg 2015-04-30 22:13:05,041 - [DEBUG] - [http-nio-8080-exec-4] (AbstractHandlerMethodMapping.java:305) - Did not find handler method for [/images/testimage.jpg] 2015-04-30 22:13:05,041 - [DEBUG] - [http-nio-8080-exec-4] (AbstractUrlHandlerMapping.java:168) - Matching patterns for request [/images/testimage.jpg] are [/images/**] 2015-04-30 22:13:05,042 - [DEBUG] - [http-nio-8080-exec-4] (AbstractUrlHandlerMapping.java:193) - URI Template variables for request [/images/testimage.jpg] are {} 2015-04-30 22:13:05,042 - [DEBUG] - [http-nio-8080-exec-4] (AbstractUrlHandlerMapping.java:123) - Mapping [/images/testimage.jpg] to HandlerExecutionChain with handler [ResourceHttpRequestHandler [locations=[ServletContext resource [/resources/]], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@280f257d]]] and 1 interceptor 2015-04-30 22:13:05,042 - [DEBUG] - [http-nio-8080-exec-4] (DispatcherServlet.java:931) - Last-Modified value for [/EstelV2/images/testimage.jpg] is: -1 2015-04-30 22:13:05,042 - [DEBUG] - [http-nio-8080-exec-4] (DispatcherServlet.java:1018) - Null ModelAndView returned to DispatcherServlet with name 'spring-dispatcher': assuming HandlerAdapter completed request handling 2015-04-30 22:13:05,042 - [DEBUG] - [http-nio-8080-exec-4] (FrameworkServlet.java:996) - Successfully completed request

1 个答案:

答案 0 :(得分:2)

经过数小时的调查后,我得出了一个结论:

我的问题与春天无关,这是我的日食项目的一个问题。看来,只要我没有在eclipse中刷新我的项目,tomcat服务器就无法访问新上传的文件 - 从文件系统中删除但仍然在eclipse项目中的旧文件仍然可以访问。

我在偏好设置中打开了两个自动刷新选项 - &gt;一般 - &gt;工作区 - &gt; “使用本机挂钩和轮询刷新”和“访问时刷新”,这解决了我现在的问题。

感谢您的帮助!