如何在tapestry中使用Spring MVC资源静态图像

时间:2013-05-16 12:01:28

标签: spring-mvc tapestry

我正在使用Tapestry 5.3.1开发应用程序

我曾尝试使用MVC资源映射来缓存图像,但它不起作用!

这是我的编码:

Context xml配置:

<mvc:resources mapping="/images/**" location="file:${catalina.home}/props/" cache-period="1234" />
<mvc:annotation-driven />

Index.tml:

<img src="/images/home.jpg"  width="130" />

我在tomcat catalina主路径道具文件夹中有这个home.jpg文件。

应用程序成功运行,但未加载图像!!

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

实际上,您最好的选择如下:

<img src="${context:images/home.jpg}"/>

这是标准&lt; img&gt;具有动态属性的标记。

“context:”是绑定前缀;它决定了如何解释字符串的其余部分。这是上下文根目录下的文件路径。

您在浏览器中看到的src属性会有所不同,具体取决于Tapestry的版本;它将是一个通过Tapestry路由的URL,并获得远期过期标题(5.3)和ETag(5.4)。 URL将包括应用程序范围的版本号(5.3)或基于文件内容的校验和(5.4)。

此外,Tapestry中还有一些钩子可将URL转换为对CDN(内容交付网络)的引用。

换句话说,我们告诉浏览器它应该缓存值而不再要求它。这对可伸缩性和性能非常重要。

我不知道mvc:/ Spring应该做什么,但它可能不像Tapestry那样功能。

答案 1 :(得分:0)

试试这个:

<img src="${pageContext.request.contextPath}/images/home.jpg"  width="130" />