我有一个 Spring MVC 项目我有一些资源,比如应用程序调用的图像和图片。当我请求资源时,我收到 404 Not Found Error 。例如。我有一个swf文件,他应该加载一个页面,但它一直在 firebug 中给出404消息。
我将此文件放在名为swf的目录中 WEB-INF 目录之外。这在以前工作,由于某种原因它停止了。有人可以帮助我查看应用程序调用的资源所在位置的配置详细信息和位置。我知道 Spring 容器请求的文件可以位于 WEB-INF 目录中,而所有其他文件必须位于外部(我将在此处进行更正)。< / p>
文件结构:
-app
-src
-test
-db
-war
-images
-swf
-WEB-INF
-classes
-css
-js
-jsp
-lib
-photos
-tld
答案 0 :(得分:2)
您的文件结构确实存在问题。你在WEB-INF文件夹下有JS和CSS。无法从网络访问这些文件。静态内容不能放在WEB-INF文件夹下。
构建您的文件,如下所示: -
-app
-src
-test
-db
-war
- resources
-images
-css
-js
-swf
-WEB-INF
-classes
-jsp
-lib
将此行添加到spring-servlet.xml
: -
<mvc:resources location="/resources/" mapping="/resources/**" />
有了这个,您所有静态内容的基本网址变为/<context-root>/resources/
,例如:/myapp/resources/images/test.jpg
。
此外,您的应用程序服务器可能未配置为提供SWF文件。因此,如果图像文件工作正常但SWF文件不起作用,您可能需要将以下mime类型添加到web.xml: -
<mime-mapping>
<extension>swf</extension>
<mime-type>application/x-shockwave-flash</mime-type>
</mime-mapping>
修改强>
此问题的解决方案是编写一个小型servlet来提供SWF文件。