2012-10-03 33 views
3

我有一個使用Vaadin portlet的Liferay項目。Vaadin,在哪裏放置圖像?

我想添加圖標到我的按鈕。

Button search = new Button("Search"); 
    search.setIcon(new ThemeResource("img/silk/add.png")); 

但是不知道我要把它放在哪裏?現在我把它放在docroot目錄下。

UPDATE

不,我試試這個。

Button search = new Button("Search"); 
    search.setIcon(new ThemeResource("LifeRayVaadin-portlet/icons/add.png")); 

但是,當我重新部署控制檯項目獲得

09:34:05,773 WARN [404_jsp:109] /html/VAADIN/themes/liferay/LifeRayVaadin-portlet/icons/add.png 

回答

4

因此,您的portlet正在尋找/html/VAADIN/themes/liferay/LifeRayVaadin-portlet/icons/add.png中的圖標。沒有任何路徑查找該文件中VAADIN/themes/yourtheme/路徑

search.setIcon(new ThemeResource("../../icons/add.png")); 

ThemeResource,從而../../將讓你(在這種情況下),以/VAADIN/

你可以VAADIN下創建一個目錄icons和調用。我個人決不會硬編碼項目中的主題名稱或portlet名稱,因爲當它更改時,必須通過每個參考並更改它們。

+0

我在Liferay項目中沒有'VAADIN'目錄。 –

+0

你確定嗎?我剛剛下載了Liferay 6.1,並在liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/html /中找到了VAADIN目錄。由於它包含Vaadin portlet的組件和主題,因此它是必需的。 – miq

+0

對不起,我是盲人。 –

1

你可以把你的圖片在$ portlet的名稱/文檔根/圖標目錄,並使用路徑

/$PORTLET-NAME$/icons/add.png 

打電話給他們在你的情況下,它將是

Button search = new Button("Search"); 

    search.setIcon(new ThemeResource("/$PORLTET-NAME$/icons/add.png")); 
+0

'$ PORLTET-NAME $'它是項目的名稱? –

+0

是的,您也可以在將它部署到應用程序服務器上時將其稱爲文件夾名稱。例如我有Liferay tomcat包,我的portlet名稱是test-portlet。當我在Tomcat/webapps /中進行交叉檢查時,我將它作爲「test-portlet」,並且可以將圖像作爲/test-portlet/icons/add.png訪問。 – Sharana

+0

我這樣做,但沒有什麼heppens。我在Tomcat中的portlet目錄中看到圖標目錄,但沒有在按鈕中看到它。我可以在哪裏失敗? –