簡體   English   中英

在GWT中將ClientBundle的資源放在哪里?

[英]Where to put resources for ClientBundle in GWT?

我希望將靜態資源保留在類樹之外,但是將它們保存在src/main/resources樹中。 盡管應該使用與Java類相同的路徑來找到它們,例如:

打包my.path.to;

class ResourceBundle extends ClientBundle {
  @Source("src/main/resources/my/path/to/ResourceBundle/myIcon.png")
  ImageResource myIcon();
}

我是否總是必須編寫@source路徑來引用它們? 或者我可以告訴ClientBundle只是查看與java類相同的目錄,但只是在資源中?

如果不使用@Source注釋ImageResourceImageResourceGenerator通過ResourceGeneratorUtil.findResources()使用相對於ClientBundle包的路徑,附加方法名稱並使用一組默認擴展來解析ImageResource源路徑(按順序拾取擴展名:png,jpg,gif,bmp;看看如何通過@DefaultExtensions注釋ImageResource

因此,如果將圖像放入ClientBundle的同一包中,它們將自動解析,甚至無需使用@Source批注。 如果您的圖像具有相同的名稱但擴展名不同,則根據前一個順序選擇第一個。

我不是maven用戶,但顯然如果你在src/main/resources也保持相同的包結構,你的圖像將以相同的方式被拾取。 從未嘗試過。

默認情況下,它將與您的java類位於同一目錄中。 我通常將我的圖形放在resorces包的子包中。 這使我的java保持清潔和分離,我不必做絕對路徑。 我相信../相對路徑也適用,如果你想這樣,但我把圖像放在一個子資源包中似乎更干凈。

com.vf.client.resources
com.vf.client.resources.images
com.vf.client.resources.css

/**
 * Draggable cursor icon.
 * 
 * <br />
 * Example
 * 
 * <img src="images/cursorDragArrowSmall.png" />
 * @return ImageResource 
 */
@Source("images/cursorDragArrowSmall.png")
ImageResource cursorDragArrowSmall();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM