2

我已经使用创建了一个骨架 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 创建 CSS 文件之间的某个地方正在缓存而不是更新。有任何想法吗?

4

2 回答 2

1

我找到了另一个对我有帮助的解决方案。您可以配置 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

于 2010-03-16T09:34:47.587 回答
1

我将 css 文件移动到 /webapp 目录中,这似乎解决了让 Start.java 注册更改的问题。我对 js 文件和图像做同样的事情。奇怪的是,我(在多个站点上)读过人们以不同的方式这样做(尽管 HTML 和 Java 类的共识总是将它们放在同一个地方)。

于 2009-07-03T05:07:25.750 回答