【问题标题】:CSS Files Don't Refresh with Wicket (Launched in Intellij via Start.java)CSS 文件不使用 Wicket 刷新(通过 Start.java 在 Intellij 中启动)
【发布时间】:2009-06-30 20:27:53
【问题描述】:

我已经创建了一个骨架 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 文件被缓存而不是更新。有什么想法吗?

【问题讨论】:

    标签: java css intellij-idea wicket


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多