Tsutomu Yano
t_yano****@me*****
2010年 1月 13日 (水) 04:52:49 JST
岩室さん 矢野です。 ソースをいろいろ追ってみましたが,SharedResourceが指す物理的なファイルに対して静的なURLを指定するのは難しいように思いました。 Twitterなんかで英語圏ユーザにも聞いてみたりしましたが,一番簡単な方法は,<wicket:link>に頼らないことのようですね。 <wicket:link>ではなく,<wicket:remove>で囲うことによって,HTMLファイルとしてのプレビューが崩れることなく,プログラムから特定のリソースをバインドすることが出来ます。<wicket:link>が使えたほうが簡単なのは明白なんですが,一つの案として。 1 リンク部分を<wicket:remove>でくくることでWicket的にはその部分を消滅させます。HTML的には意味があるのでプレビューは出来ます 2 該当HTMLを使うPageサブクラスで,次のような感じで,固定のクラスをscopeに指定してSharedResourceを追加します。 add(new HeaderContributor(CSSPackageResource.getHeaderContribution(Stylesheet.class,"default.css"))); これによりStylesheet.classと同じ場所にあるdefault.cssへのlinkがHTMLヘッダに追加されます。cssのある場所にJavaクラスが存在しない場合は,ダミーでもなんでもいいので一つ作ればいいでしょう。 3 ApplicationのgetSharedResources().putClassAlias()を使って,上記のクラスにエイリアスを設定する 一応,これで該当リソースへのURLは常に固定されるようになります。 しかしまあ,スマートとはちょっと言えないですね。できればHTMLを修正したらHTMLプレビューもプログラムも同時に更新されるほうがいいですし。どっちかというとワークアラウンド,回避策,という感じです。 案として書いておきます。 なんかほかにいい案があればいいんですが。 --------------------------------------------------- 矢野 勉(やの つとむ) 電子メール: t_yano****@me***** ---------------------------------------------------