2012-03-27 139 views
2

我开发本地使用两个码头和Tomcat。试图让MVC资源来为我的静态资源

我的图片,CSS,JavaScript文件是:

/src/main/webapp/assets 

在文件夹的资产有:

/src/main/webapp//assets/images 
/src/main/webapp//assets/css 
/src/main/webapp//assets/images/ 

我的Spring配置文件有:

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

我混淆映射和位置都意味着什么?

我想映射意味着春天将只尝试和服务于静态文件,如果有喜欢的图案的网址:

www.example.com/assets/ 

是什么位置呢?

我的HTML目前拥有:

src="/assets/images/logo.gif" 

我试着位置值耍了,我没有得到渲染出于某种原因图像。

有人可以清除此为我?

+0

你看了在http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html点16.14.5? – madth3 2012-03-27 23:49:49

回答

5

如果你的项目结构具有/src/main/webapp/assets/images,那么你要使用:

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

,然后在你的JSP参考文件作为

src="${pageContext.request.contextPath}/assets/images/logo.gif" 

它更常见的是有一个项目结构像/src/main/webapp/images|css|js和然后使用:

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

但仍记得平网址作为${pageContext.request.contextPath}/assets/images/logo.gif

+0

contextPath是什么?因为如果可能的话我想保留图像。甚至有网址的子域(说他们是从CDN服务.... – Blankman 2012-03-28 01:48:08

+0

的contextPath是根路径(通常是应用程序/战争的名字),如果你在Tomcat上运行,等(但如果用虚拟运行可以是空的在主机生产环境)你是如何运行你的应用程序 - ?什么是完整的URL页面 – nickdos 2012-03-28 02:39:42

+0

以及它可能是一个自定义的映射域(将有成千上万的),或者说上一个子mywebsite.example.com – Blankman 2012-03-28 14:57:28