0

Maven に移行する前は Ant を使用していましたが、IntelliJ IDEA の下から Dev Mode を起動しても問題はありませんでした。しかし今、プロジェクトは Maven の下にあります。それで、必要なすべての構成を作成したと思います。デバッガーを実行すると、ログインページが表示されますが、ログイン後に次のエラーが表示されます。

[エラー] リソース img/remove_filter_btn.png が見つかりません。Class.getResource() として指定された名前は期待どおりですか?

リソースの使用方法は次のとおりです。

public interface Resources extends ClientBundle {

    @Source("img/remove_filter_btn.png")
    ImageResource removeBtn();
}

プロジェクトの構造は次のとおりです。

Module
|--Submodule
|  |--src
|  | |--main
|  | | |--java
|  | |   |--package
|  | |     |--class
|  | |--webapp
|  |   |--img
|  |     |--remove_filter_btn.png
|  |--target
|    |--ROOT
|      |--img
|        |--remove_filter_btn.png
|--utils
   |--tomcat
      |--webapps
         |--ROOT
            |--img
               |--remove_filter_btn.png

War ファイルは、utils フォルダーにある tomcat で起動されます。

実際、GWT がこのリソースをどこで探すのかはわかりません。GWT がリソースを探し始めるポイントを取得する方法についての解決策があるのでしょうか?

現時点ではこれが唯一の質問です。なぜなら、デバッグが機能し始める前に残された唯一の問題だと思うからです。

4

1 に答える 1

1

ClientBundleintoによって消費されるイメージImageResourceは、外部の Web リソース (つまり、target/ または webapp/) ではなく、ソース ツリーにあることが期待されます。

あなたが書くとき

package my.project.something.client
//...
public interface Resources extends ClientBundle {
    @Source("img/remove_filter_btn.png")
    ImageResource removeBtn();
}

src/my/project/something/client/img/remove_filter_btn.png で画像を見つけることができることを ClientBundle に伝えています。

ClientBundle の目的は、コードで簡単に使用できるようにパス名文字列をラップすることだけではなく、実際にイメージをアプリにコンパイルすることであることに注意してください。小さな画像の場合、実際には画像全体がアプリに配置されることが多いため、スプライトはまったく必要ありません。これが不可能な場合でも、ブラウザによって永久にキャッシュできるように画像を書き換え、実際に必要以上のスペースを使用しないように画像を最適化しようとします。

于 2013-01-10T22:28:12.457 に答える