我需要使用Spring MVC访问静态资源,如图像、JavaScript和CSS。经过一些研究后,我发现我可以通过在web.xml中放置以下条目来访问它们
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>但是这样我就无法访问WEB-INF/文件夹下的资源了。我希望我的所有资源都在WEB-INF/文件夹下,只是为了控制访问。我该怎么做呢?
发布于 2012-09-07 18:02:54
您可以将其放在application-servlet.xml中:
<!-- static resource mapping for style sheets, etc. -->
<mvc:resources mapping="/styles/**" location="/WEB-INF/skins/" />
<mvc:resources mapping="/scripts/**" location="/WEB-INF/scripts/" />在页面上,你可以看到:
<script type="text/javascript" src="${context}/scripts/jquery-1.7.js"></script>
<link rel="stylesheet" type="text/css" href="${context}/styles/css/superfish.css">发布于 2012-09-07 18:00:13
您需要告诉spring静态资源在哪里。
<mvc:resources mapping="/resources/**" location="/, classpath:/META-INF/web-resources/" />
这将使WEB-INF/下的所有文件以及META-INF/web-resources中jars中的所有文件都可以在
http://example.org/app/resources/
另请参阅Spring: DispatcherServlet and static content
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-static-resources
https://stackoverflow.com/questions/12315809
复制相似问题