Gwt Css 和 uibinder no-obfuscation 不工作
Gwt Css and uibinder no-obfuscation not working
我有一个配置为 属性:
的 Gwt 小部件库
<set-configuration-property name="CssResource.style" value="stable-notype"/>
预计将保留原始 css 名称,然后是 css 文件(示例)
.invader {
width: 400px;
height: 400px;
background-color: #DBDBDB;
}
.invader .button {
background-image: url('merged.png');
width: 64px;
height: 64px;
background-position: 0px 64px;
background-color: #BA6622;
}
之后,生成了一个css资源
interface WidgetStyle extends CssResource {
String button();
String invader();
}
当我在 WidgetStyle 实例 (and/or) 上调用 ensureInjected() 时,使用样式 programatically/in ui:binder 例如
<ui:style src="WidgetStyle.css" field="style" />
<g:HTMLPanel styleName="{style.invader}" ui:field="panel" />
然后,在浏览器中的结果 html 文件中,而不是一个注入的 css 样式中,我得到了四个定义的选择器:
.org-invader-widget-client-WidgetStyle-invader;
.org-invader-widget-client-WidgetStyle-invader .org-invader-widget-client-WidgetStyle-button;
.org-invader-widget-client-MyWidget_UIImpl_GenCss_style-invader;
.org-invader-widget-client-MyWidget_UIImpl_GenCss_style-invader .org-invader-widget-client-MyWidget_UIImpl_GenCss_style-button;
这些对重复上述样式,只是名称不同。我看到第二对以 "MyWidget owned" 样式出现,但是我如何强制所有应用程序仅使用我在 .css 文件中定义的那些 css 类 而不进行任何混淆?
此外,第二对css-类未能正确应用。只应用了第一个,第二个不匹配。
我哪里做错了?
好的,我发现使用
访问 css
<ui:style ... />
注入样式并且 css 类 可能会获得额外的前缀,对我来说正确的方法是通过带有
的 ClientBundle 访问样式
<ui:with ... >
混淆覆盖在 *.gwt.xml 中的 SuperDevMode 中不起作用 'by default' 并且,如果我是对的,它必须使用 DevMode 运行 参数进行配置。
我有一个配置为 属性:
的 Gwt 小部件库<set-configuration-property name="CssResource.style" value="stable-notype"/>
预计将保留原始 css 名称,然后是 css 文件(示例)
.invader {
width: 400px;
height: 400px;
background-color: #DBDBDB;
}
.invader .button {
background-image: url('merged.png');
width: 64px;
height: 64px;
background-position: 0px 64px;
background-color: #BA6622;
}
之后,生成了一个css资源
interface WidgetStyle extends CssResource {
String button();
String invader();
}
当我在 WidgetStyle 实例 (and/or) 上调用 ensureInjected() 时,使用样式 programatically/in ui:binder 例如
<ui:style src="WidgetStyle.css" field="style" />
<g:HTMLPanel styleName="{style.invader}" ui:field="panel" />
然后,在浏览器中的结果 html 文件中,而不是一个注入的 css 样式中,我得到了四个定义的选择器:
.org-invader-widget-client-WidgetStyle-invader;
.org-invader-widget-client-WidgetStyle-invader .org-invader-widget-client-WidgetStyle-button;
.org-invader-widget-client-MyWidget_UIImpl_GenCss_style-invader;
.org-invader-widget-client-MyWidget_UIImpl_GenCss_style-invader .org-invader-widget-client-MyWidget_UIImpl_GenCss_style-button;
这些对重复上述样式,只是名称不同。我看到第二对以 "MyWidget owned" 样式出现,但是我如何强制所有应用程序仅使用我在 .css 文件中定义的那些 css 类 而不进行任何混淆?
此外,第二对css-类未能正确应用。只应用了第一个,第二个不匹配。
我哪里做错了?
好的,我发现使用
访问 css<ui:style ... />
注入样式并且 css 类 可能会获得额外的前缀,对我来说正确的方法是通过带有
的 ClientBundle 访问样式<ui:with ... >
混淆覆盖在 *.gwt.xml 中的 SuperDevMode 中不起作用 'by default' 并且,如果我是对的,它必须使用 DevMode 运行 参数进行配置。