1

我有一个Spring MVC项目,我有一些资源,例如应用程序调用的图像和图片。我在请求资源时收到404 Not Found 错误。例如,我有一个 swf 文件,他应该加载一个页面,但它一直在firebug中给出 404 消息。

我有这个文件位于WEB-INF目录之外的一个名为 swf 的目录中。这是以前工作的,由于某种原因它停止了。有人可以帮助我了解应用程序调用的资源的配置详细信息和位置。我知道Spring容器请求的文件可以位于WEB-INF目录中,而所有其他文件必须位于外部(我将对此进行更正)。

文件结构:

-app
 -src
 -test
 -db
 -war
  -images
  -swf
  -WEB-INF
   -classes
   -css
   -js
   -jsp
   -lib
   -photos
   -tld
4

1 回答 1

2

你的文件结构确实有问题。您在 WEB-INF 文件夹下有 JS 和 CSS。这些文件将无法从 Web 访问。静态内容不能放在 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/**" />

这样,您所有静态内容的基本 URL 将变为/<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 文件。

于 2013-01-14T01:19:35.507 回答