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を再起動したときにCSSファイルが取得されないことです。(javaファイルとhtmlファイルへの変更は、変更すると更新されます)

ブラウザのキャッシュがクリアされていることを確認し、Firfox/Firebugでリクエスト/レスポンスを検証しました。Wicketの魔法と桟橋インスタンスStart.javaの間のどこかで、CSSファイルがキャッシュされて更新されていないように見えます。何か案は?

4

2 に答える 2

1

cssファイルを/webappディレクトリに移動しましたが、これでStart.javaに変更を登録させる問題が解決したようです。私はjsファイルと画像についても同じことをしています。不思議なことに、私は(複数のサイトで)さまざまな方法でこれを行っている人々を読んだことがあります(ただし、HTMLクラスとJavaクラスのコンセンサスは常に同じ場所にあることです)。

于 2009-07-03T05:07:25.750 に答える
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 に答える