Я хочу поместить все свои ресурсы в ClientBundle для удобства управления. Поэтому я начал работать над размещением одного файла css, который также является файлом под каталогом /war
, в ClinetBundle. Однако стиль не может быть отображен на моем выходе, но если я просто поместил файл css под /war
, не используя css ClientBundle, программа работала нормально.Нужно ли мне поместить файл ресурсов css в ClientBundle в GWT?
Ниже мой простой тест (с использованием ClientBundle) - я положил файл CSS же папку, в client
пакета и удалить файл CSS под /war
каталоге:
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.resources.client.CssResource.NotStrict;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
public class Test implements EntryPoint {
private static final int REPORT_TITLE_HEIGHT = 50;
public static final MyResources INSTANCE = GWT.create(MyResources.class);
public interface MyResources extends ClientBundle {
@NotStrict
@Source("Test.css")
CssResource css();
}
public void onModuleLoad() {
INSTANCE.css().ensureInjected();
Window.enableScrolling(false);
Window.setMargin("0px");
VLayout vl = new VLayout();
vl.setWidth100();
vl.setHeight100();
HLayout reportTitleBar = new HLayout();
reportTitleBar.setHeight(REPORT_TITLE_HEIGHT);
reportTitleBar.setStyleName("report-title-bar");
vl.setMembers(reportTitleBar);
RootPanel.get().add(vl);
}
}
стиль не может быть оказана.
Другой простой случай - без использования css ClientBundle и вернуть файл css в папку /war
.
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
public class Test implements EntryPoint {
private static final int REPORT_TITLE_HEIGHT = 50;
public void onModuleLoad() {
Window.enableScrolling(false);
Window.setMargin("0px");
VLayout vl = new VLayout();
vl.setWidth100();
vl.setHeight100();
HLayout reportTitleBar = new HLayout();
reportTitleBar.setHeight(REPORT_TITLE_HEIGHT);
reportTitleBar.setStyleName("report-title-bar");
vl.setMembers(reportTitleBar);
RootPanel.get().add(vl);
}
}
Стиль может быть правильно оказаны.
И мой Test.css код:
.report-title-bar {
/* IE10 Consumer Preview */
background-image: -ms-linear-gradient(top left, #FFFFFF 0%, #00A3EF 100%);
/* Mozilla Firefox */
background-image: -moz-linear-gradient(top left, #FFFFFF 0%, #00A3EF 100%);
/* Opera */
background-image: -o-linear-gradient(top left, #FFFFFF 0%, #00A3EF 100%);
/* Webkit (Safari/Chrome 10) */
background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #FFFFFF), color-stop(1, #00A3EF));
/* Webkit (Chrome 11+) */
background-image: -webkit-linear-gradient(top left, #FFFFFF 0%, #00A3EF 100%);
}
Что вопрос здесь, кто-нибудь, пожалуйста, пролить некоторый свет мне на него. Оценил!
Спасибо, буквальная функция работает. Просто интересно, почему бы просто не использовать папку '/ war'. Помещает ли файл css в ClientBundle больше мощности? – sozhen
Сглаживание имен объектов, чтобы избежать конфликтов между CssResources, '@if @ else',' @ sprite', '@ def' и т. Д. Взгляните на документы! –