2012-11-19 2 views
1

나는 this answer (감사의 에드)을 따르고 있었고 그는 그 문제를 완전히 해결하지 못했다.GWT Super Dev Mode/SuperDevMode에서 HTML 파일을 포함하도록하려면 어떻게해야합니까?

SuperDevMode/CodeServer가 설치되어 실행 중이지만 HTML 파일이 포함되어 있지 않으므로 쓸모가 없습니다. 실제로 2 개의 웹 서버를 실행해야합니까?

나는 그다지 중요하지 않다면 Gradle을 사용하고 있습니다.

답변

1

다음은 내가 생각해 낸 대답입니다. 내 HTML 파일에서 내 * .nocache.js을로드하는 스크립트를 제거하고 대신 같은, 동적으로 생성 :

<script type="text/javascript"> 
    function loadScript(scriptSrc) 
    { 
     var scriptTag = document.createElement('script'); 
     scriptTag.type = 'text/javascript'; 
     scriptTag.async = true; 
     scriptTag.src = scriptSrc; 
     var s = document.getElementsByTagName('script')[0]; 
     s.parentNode.insertBefore(scriptTag, s); 
    } 

    // Load the GWT script 
    loadScript(('file:' == document.location.protocol ? "http://localhost:9876/" : "") + "admin/admin.nocache.js"); 
</script> 
코드 서버를 실행하기위한

내 Gradle을 작업은 다음과 같습니다

task codeServer(dependsOn: "war") << { 
    println("*----------------------------------------------------------------------------------------------*") 
    println(" Ignore what this says below about going to http://localhost:9876/") 
    println(" Instead, once the server below is up, in a separate command line, type:") 
    println("  start $buildDir\\exploded\\Admin.html") 
    println("*----------------------------------------------------------------------------------------------*") 

    def gwtTempDir = "$buildDir/gwtTemp" 
    (new File(gwtTempDir)).mkdirs() 

    ant.java(classname: "com.google.gwt.dev.codeserver.CodeServer", failonerror: "true", fork: "true") { 
     classpath { 
      pathElement(location: "src/main/java") 
      pathElement(location: "src/main/resources") 
      pathElement(location: "$buildDir/classes/main") 
      pathElement(path: configurations.compile.asPath) 
     } 
     jvmarg(value: "-Xmx512m") 
     sysproperty(key: "java.util.logging.SimpleFormatter.format", value: System.getProperty("java.util.logging.SimpleFormatter.format")); 
     arg(line: "-workDir " + gwtTempDir) 
     arg(line: "-src " + "src/main/java") 
     arg(value: "com.onlyinsight.oventio.Admin") 
    } 
} 

이제 두 번째 웹 서버 대신 브라우저에서 file : /// F : /projects/ConferenceModule/build/exploded/Admin.html을 가리키면 모든 것이 작동합니다.

나는 다른 사람을 돕기를 바랍니다. 지금의 당신이 어떤 서버 측이 없을 경우

2

, 당신은 단순히 public path에 대신 전쟁 폴더 내에서 HTML 호스트 페이지를 넣을 수 있습니다, 그것은 다음의 SuperDevMode CodeServer에 의해 제공됩니다 모듈의 일부. <script>을 조정하는 것을 잊지 마십시오 : *.nocache.js은 페이지의 형제가 될 것입니다.

+0

굉장한 제안. 나는 그걸 생각하지 않았다. 사실, 나머지 서버 측 항목 (이미지, HTML)도 public 경로에 넣을 수 있으며 코드 서버가 훨씬 잘 작동합니다. 나는 약 4 시간 동안 놀고 나니 실제로이 프로젝트를 포기했다. 나는 슈퍼 데브 모드가 아직 시기상조이다. 내 모듈을 컴파일하는 데 23 초가 걸렸습니다. 각 코드가 변경 될 때까지 기다려야합니다. 그것은 현재의 5-10 초 사이에 dev 모드가 거래를 죽일 때까지 기다릴만큼 충분히 북쪽입니다. –

+0

에 의해 _anything server-side_, 나는 _code_에 대해 얘기하고 있었다 : 이미지가 _ 서버 측 _ 무언가가 아니다. SuperDevMode 퍼포먼스에 관해서는 실제로 개선의 여지가 있습니다. 발전기는 점진적으로 실행 (매번 재생성하는 것이 아니라 결과를 캐싱)을 지원해야하며, 현재 RPC 및 ClientBundle만이 : UiBinder가 아니라 Editor, RequestFactory 등입니다 그 중 컴파일 속도가 느려집니다. 이후 릴리스에서 더 나은 성능을 기대하십시오. SuperDevMode가 _experimental_으로 레이블 된 이유가 있습니다 ;-) –

관련 문제