Spring MVC资源,如何更新一次上传?

时间:2016-01-03 19:53:30

标签: java spring spring-mvc

我在更新spring mvc css资源时遇到问题,一旦上传到部署目录,它就不会进行任何更改。我尝试使用maven clean-> compile-> deploy来修复它,然后运行tomcat服务器。但是更改似乎没有部署应用仍然使用旧的CSS ...在部署的.war包中出现了新的css。

servlet的context.xml中

<?php
    header('Content-Type: image/png');
    $im = imagecreatetruecolor(600, 70);
    $white = imagecolorallocate($im, 255, 255, 255);
    $black = imagecolorallocate($im, 0, 0, 0);
    imagefilledrectangle($im, 0, 0, 600, 70, $white);
    $text = 'Testing...';
    // The file name is hard coded in this example.
    $font = 'arial.ttf';
    imagettftext($im, 50, 0, 10, 60, $black, $font, $text);
    imagepng($im);
    imagedestroy($im);
?>

1 个答案:

答案 0 :(得分:0)

为了解决这个问题通常我在css / js url中使用一个带有时间戳值的变量,就像这样

<link href="${pageContext.request.contextPath}/resources/css/main.css?${applicationScope['cacheHash']}" rel="stylesheet" type="text/css" />
<link href="${pageContext.request.contextPath}/resources/css/homeMenu.css?${applicationScope['cacheHash']}" rel="stylesheet" type="text/css" />
...

问题是您需要在服务器上的作用域应用程序中声明此 $ {applicationScope ['cacheHash']} ,您可以在任何Listerner中声明。

public class CacheListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
    sce.getServletContext().setAttribute("cacheHash", new Date().getTime());
}