【问题标题】:Mapping static resources with version number in the path in Spring MVC在 Spring MVC 的路径中使用版本号映射静态资源
【发布时间】:2015-12-11 11:58:32
【问题描述】:

我正在尝试在使用 Spring MVC 提供静态资源时实现版本控制。部署新版本的应用程序时,我需要强制客户端重新加载资源。

我遵循了 spring 官方指南 here,我不能让它与 mvc:resources 一起使用,但它可以在 JSP 页面中使用。

这里是我在 springMVC-servlet.xml 中的配置:

<mvc:resources mapping="/style-#{applicationProps['version']}/**" location="/style" />
...
<util:properties id="applicationProps" location="/WEB-INF/conf/application.properties"/>

这是jsp的工作部分:

<spring:eval expression="@applicationProps['version']" var="applicationVersion"/>
<link rel="stylesheet" type="text/css" href="/style-${applicationVersion}/style-common.css">

最后这是浏览器中的页面源代码:

<link rel="stylesheet" type="text/css" href="/style-2.1-SNAPSHOT/style-common.css">

问题是这个文件没有被映射。当我点击它时,它说:找不到资源... 知道如何进行、调试、理解问题吗? 非常感谢!

【问题讨论】:

  • 您是否检查过日志(如果没有,请启用 INFO 级别)以查看 mvc:resourcesmapping 属性是否已正确解析属性等?

标签: java spring jsp spring-mvc


【解决方案1】:

替换

 <mvc:resources mapping="/style-#{applicationProps['version']}/**" location="/style" />

<mvc:resources mapping="/style-#{applicationProps['version']}/**" location="/style-#{applicationProps['version']}/" />

资源位置属性应该是完整的文件夹名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2020-07-21
    相关资源
    最近更新 更多