我正在使用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文件。
应用程序成功运行,但未加载图像!!
任何人都可以帮助我吗?
答案 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" />