微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GWT DevMode不会重新加载css文件的更改

我使用Gradle作为构建管理建立了一个GWT项目,一切都很好.
我可以在 eclipse中将我的项目部署到我的本地tomcat,并且应用程序按预期运行.
但是,如果我启动DevMode并在我的css资源中更改某些内容(使用@Source注释绑定为CssResource类),GWT DevMode不会捕获它,并且不会考虑css更改.
我错过了什么吗?我希望DevMode能够在开发期间检测.css文件中的更改,而无需再次运行gwt编译.

以下是我如何使用css资源的示例:

public interface XOFooterPanelResource extends FooterPanelResource,ClientBundle {
    @Override
    @Source("XOFooterPanel.css")
    XOFooterPanelStyle style();

    @Override
    @ImageOptions(repeatStyle = RepeatStyle.Horizontal)
    ImageResource footerPanelBackground();

    @Override
    @ImageOptions(repeatStyle = RepeatStyle.Horizontal)
    ImageResource footerPanelBackgroundEndUser();

    @Override
    @Source("footerDelimiter.jpg")
    ImageResource footerDelimiter();
}

public interface XOFooterPanelStyle extends FooterPanelStyle,CssResource {

}

正如你所看到的,我有一个扩展CssResource的XOFooterPanelStyle接口.它在XOFooterPanelResource中使用 – 它扩展了ClientBundle – 使用@Source注释和我的CSS文件名称.

这是我的gradle构建文件的一部分,它负责启动DevMode:

javaexec {
        main = 'com.google.gwt.dev.DevMode'

        jvmArgs = ['-Xmx2048M','-XX:MaxPermSize=1024M']

        classpath {
            [
                sourceSets.main.java.srcDirs,// Java source
                sourceSets.main.output.resourcesDir,// Generated resources
                sourceSets.main.output.classesDir,// Generated classes
                sourceSets.main.compileClasspath       // Deps
            ]
        }

        args = [
                '-startupUrl','myapp/index.html','-noserver','-war','build/devmode','-gen','gen'
            ]
        ext.gwtModules.each {
            args += it
        }
    }

如前所述,我在eclipse中使用tomcat来运行应用程序,因此设置了-noserver选项.

解决方法

除非您直接更改tomcat引用的css文件,否则您将看不到dev模式中的更改.我相信当您在eclipse中通过tomcat进行部署时,您的代码不会直接从eclipse项目工作区引用,而是将副本移动到tomcat webapps文件夹中.

我不确定这个标准方法是什么.我觉得必须有一个从eclipse刷新静态资源到tomcat实例的选项,但我还没有调查过.

在我需要时,我有两种解决问题的方法

1)您可以将CSS代码放在ui.xml文件中,这应该由devMode获取.
Tutorial on how to add css to your ui.xml

2)您还可以直接修改webapps文件夹中的css文件,然后将您所做的任何更改迁移回工作区版本.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。