我已经使用创建了一个骨架 Wicket 项目

mvn archetype:create -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=1.4-rc4 -DgroupId=com.mycompany -DartifactId=myproject

使用 Maven/Intellij 的所有配置/导入新项目都工作正常。我继续按照以下建议的方式在 Wicket 1.4 中将基本 CSS 文件添加到我的起始页

public class BasePage extends WebPage {
    public BasePage() {
        add(CSSPackageResource.getHeaderContribution(BasePage.class, "main.css"));
    }
}

main.css 文件已与 BasePage.java 和 BasePage.html 一起放在 /src/main/java 中。我使用 Start.java 启动该应用程序。问题是当我对 CSS 文件进行更改时,当我重新启动 Start.java 时,它不会被拾取。(当我更改java和html文件时,它们的更改也会更新)

我确保浏览器缓存被清除,甚至验证了 Firfox/Firebug 中的请求/响应。似乎介于 Wicket 的魔力和 Start.java 创建的 Jetty 实例之间,CSS 文件被缓存且未更新。有任何想法吗?

有帮助吗?

解决方案

我移动的css文件到/ webapp目录并似乎得到解决,以Start.java登记变更的问题。我做同样的JS文件和图像。奇怪的是,我已经阅读(不同地区)的人以不同的方式做这个(虽然HTML和Java类的共识总是让他们在同一个地方)。

其他提示

我找到了另一个对我有帮助的解决方案。您可以配置 Wicket 为资源请求添加时间戳,以解决缓存问题。在应用程序类的 init 方法中调用资源设置的 setAddLastModifiedTimeToResourceReferenceUrl 。

public class MyApplication extends WebApplication {
    @Override
    protected void init() {
        getResourceSettings().setAddLastModifiedTimeToResourceReferenceUrl(true);
    }
}

原来的: http://old.nabble.com/Javascript-CSS-being-cached-by-the-browser-even-when-it-has-changed.-Should-setAddLastModifiedTimeToResourceReferenceUrl%28true%29-be-the-default-- td14886538.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top