【问题标题】:Missing static resources from Spring MVCSpring MVC 中缺少静态资源
【发布时间】:2016-01-04 21:04:08
【问题描述】:

我有一个 Spring MVC 4.x 应用程序,它在应用程序上下文 XML 文件中定义了几个静态资源:

<mvc:resources mapping="/css/**" location="classpath:/css/" />
<mvc:resources mapping="/images/**" location="classpath:/images/" />
<mvc:resources mapping="/js/**" location="classpath:/js/" />
<mvc:resources mapping="/static/**" location="classpath:/static/" />
<mvc:resources mapping="/static2/**" location="/static/" />

这些文件存储在“/webapp/static/”目录和“/resources/static/”目录中(分别参见static2/static/的映射。“js”中有一些文件和“css”子目录可以访问,但是当我尝试通过 Netbeans 控制的本地 Tomcat 服务器访问它们时,我最近添加的文件返回 404 错误。

我已尝试对我的 spring 配置进行许多更改,并查看了以下解决方案:

我得到的最远的是能够加载加载在“resources/static/”目录的根目录中的 html 文件,但无法从“resources/static/vendor”获取任何要加载的文件在网络浏览器中。

【问题讨论】:

    标签: java spring spring-mvc netbeans


    【解决方案1】:

    问题:

    经过近两天的搜索和重新部署。我意识到问题不在于我的 Spring MVC 配置。相反,当我部署应用程序时,Netbeans 并没有复制所有静态资源。

    查看我的项目文件夹中的“target/”目录,我看到只有一些资源被移动了。我怀疑这些是我在 netbeans 中专门编辑的,或者是我上次进行干净构建时在项目中的。

    解决方案:

    要解决这个问题,我只需在运行之前重新构建项目。这复制了“webapp/static”目录和“resources/static”目录中的所有文件。

    【讨论】:

    • 今天在 intelliJ 中遇到了同样的问题,只需要强制重建几次,它最终被复制了