【问题标题】:Set version of javascript file. Java EE + Tomcat设置 javascript 文件的版本。 Java EE + Tomcat
【发布时间】:2015-02-12 09:18:39
【问题描述】:

通过向 javascript 和 css 添加更新,我想避免强制用户按 Ctrl+F5 来刷新缓存的 js 和 css 文件。

禁用缓存也不是一个选择。

为此,我想像这样向 js 和 css 链接添加版本

< link href="~/CSS/file.css?MY_VERSION" rel="stylesheet" />

理想情况下,版本必须类似于构建日期和时间的构建号。
但是我怎样才能自动设置呢?

我不想在每次更新后手动更新所有 jsp 文件中的这些值。 所以问题是

  • maven 能否将构建版本添加到 jsp 文件中?
  • 如果第一点是不可能的,我如何(以及在​​哪里)使用当前日期和时间设置应用程序全局变量?例如,我不能将它放入 servlet,因为它是由每个请求构建的。
  • 执行此操作的最佳做​​法是什么?也许我的方法完全不正确

【问题讨论】:

    标签: java javascript css jsp tomcat


    【解决方案1】:

    是的,我们做了类似的事情(用于 css 文件中的图像引用):

    <plugin>
        <groupId>com.google.code.maven-replacer-plugin</groupId>
        <artifactId>maven-replacer-plugin</artifactId>
        <version>1.4.1</version>
        <executions>
            <execution>
                <id>anticache</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>replace</goal>
                </goals>
                <configuration>
                    <includes>
                        <include>target/classes/**/*.css</include>
                    </includes>
                    <replacements>
                        <replacement>
                            <token>anti-cache=anti-cache-parameter</token>
                            <value>anti-cache=${maven.build.timestamp}</value>
                        </replacement>
                    </replacements>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    只需检查文件模式以匹配您的 JS 文件,然后在您的 JS 文件中:

    < link href="~/CSS/file.css#anti-cache=anti-cache-parameter" rel="stylesheet" />
    

    请注意,我在这里不使用请求参数 (?),而是使用 #。这是为了避免浏览器缓存受到影响,因为使用请求参数,浏览器缓存将挂在文件的每个版本上。另见:Refresh image with a new one at the same url

    现在,如前所述,我们使用它,但它也不是理想的解决方案,但我认为不存在理想的解决方案。

    还可以查看缓存在不同浏览器中的行为: https://github.com/podlipensky/RefreshButton

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 1970-01-01
      • 2012-11-30
      • 2018-01-08
      • 1970-01-01
      相关资源
      最近更新 更多