2011-08-25 9 views
8

Me gustaría saber por qué GWT no funciona sin el argumento? Gwt.codesvr = 127.0.0.1: 9997 en la url, I' m redireccionando entre módulos la codificación de las url's y tengo que configurar esta línea para que no se muestre el mensaje: El módulo XXX debe ser (re) compilado.¿Por qué GWT no funciona sin? Gwt.codesvr = 127.0.0.1: 9997

espero no tener que cambiar esta URL en el futuro, cuando me iba a cambiar desde el modo de anfitrión de modo que ...

Entonces, ¿hay alguna forma mejor de enlace de un módulo al otro? Estoy haciendo con:

GWT.getHostPageBaseURL() + "UserRegistration.html ?gwt.codesvr=127.0.0.1:9997 " 

Gracias de antemano.

Respuesta

8

Ese argumento de cadena de consulta lo examina el * .nocache.js para desencadenar la carga del complemento de modo dev que instaló en su navegador, por lo que se conecta de nuevo a la aplicación DevMode designada.

Cuando tiene que redirigir entre páginas y quiere que todas se ejecuten en modo dev o en modo web, lo más fácil es condicionar el argumento (si es posible con el valor tomado del existente, en lugar de codificado) a !GWT.isProdMode():

if (!GWT.isProdModode()) { 
    // assumes 'url' doesn't contain a query-string yet 
    url += "?gwt.codesvr=" + Window.Location.getParameter("gwt.codesvr"); 
} 

Si no utiliza una cadena de consulta a sí mismo, por lo que sólo espera que alguna vez llega con el parámetro gwt.codesvr o estar ausentes, puede que sea aún más sencillo el uso de un UrlBuilder:

UrlBuilder builder = Window.Location.createUrlBuilder(); 
builder.setPath(GWT.getHostPageBaseURL() + "UserRegistration.html") 
//don't pass the history token around: 
builder.setHash(null); 
// builder.toString() will then keep the same query string. 

y ni siquiera está condicionado al "modo" actual en el que se ejecuta la aplicación, ya que solo, sin condiciones, copia la cadena de consulta.

+0

'GET.getHostPageBaseURL()' devuelve la URL absoluta incluyendo esquema, host: puerto. Usar esto en 'setPath()' causa una URL mal formada. Sin embargo, si omite llamar 'setPath()' por completo, asume la URL actual de la página, que funciona para una aplicación web de GWT de una sola página. – spoulson

0

Ese parámetro es solo para el modo de desarrollo. Tenga en cuenta que si tiene dificultades para codificar las URL con ese parámetro, bueno, eso está mal.

Cuestiones relacionadas