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

标签 spring-mvc tapestry

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

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

这是我的编码:

上下文 xml 配置:

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

索引.tml:

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

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

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

有人可以帮助我吗?

最佳答案

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

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

这是一个标准 标记,具有动态 属性。

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

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

此外,Tapestry 中还有一些 Hook 可以将 URL 转换为对 CDN(内容分发网络)的引用。

换句话说,我们告诉浏览器它应该缓存该值并且不再请求它。这对于可扩展性和性能非常重要。

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

关于spring-mvc - 如何在tapestry中使用Spring MVC资源静态图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586874/

相关文章:

java - Tapestry - 循环两个列表

java - Spring MVC XML View

java - Spring boot API 接受 JSON(强制)和多部分文件(可选)

Json 映射器将 LocalDate 转换为月、年、月中的日期等

java - 如何覆盖 Tapestry AlertManager

javascript - 在加载页面时打开一个新窗口的问题

spring - 无法使用 Spring Boot thymeleaf 加载图像

java - DAO 层中的@Cacheable 未被触发(Spring/Redis)

java - 输入中的 Tapestry 形式类型=图像不起作用

java - Tapestry 内部重定向到静态页面