2012-02-13 39 views
19

Uso de require.js Noté que a menudo las dependencias son almacenadas en caché por el navegador y no se actualizan incluso si forzo a la página a volver a cargar completamente (comando + shift + R).Depuración al utilizar require.js caché

Para tener siempre el archivo actualizado, hice require.js pedir los archivos que agregan '? Datestamp' después de la url. El único problema con este enfoque es que los puntos de interrupción no permanecen en Chrome o Firebug después de volver a cargar, lo que hace que la depuración sea dolorosa.

¿Tiene alguna sugerencia?

+0

¿Tiene acceso a su servidor web o configuración del servidor de aplicaciones o entiende su servidor web '.htaccess'? – fyr

+0

Podría ejecutar Apache en una máquina local al depurar – Ghigo

Respuesta

16

en realidad hay algunas cosas que puede hacer:

Cualquiera de deshabilitar el almacenamiento en caché del navegador completo para probarlo. Una manera fácil en, por ejemplo, Chrome abrirá una ventana de incógnito (CTRL + MAYÚS + N) similar al modo Navegación privada en Firefox. Sin embargo, la solución más ideal para usted debe figurar aquí: Disabling Chrome cache for website development

O le indica a su servidor web que no envíe encabezados de caché para javascript o algunos archivos javascript. Una posibilidad es usar mod_expires con apache.

+0

El modo incógnito podría funcionar para proyectos simples pero no todo. Desactivar el caché o editar el .htaccess es en realidad una mejor solución. Gracias. – Ghigo

3

Creo que se puede utilizar en los urlArgs required.config

cita de http://requirejs.org/docs/api.html#packages urlArgs: argumentos de cadena de consulta adicional adjuntas a la URL que utiliza RequireJS a buscar recursos. Lo más útil para almacenar en caché cuando el navegador o servidor no está configurado correctamente. Ejemplo de ajuste del busto caché para URLA

+3

Como escribí en la pregunta, esta solución hará que la depuración sea dolorosa. – Ghigo

9

que utiliza

require.config({ urlArgs: "v=" + (new Date()).getTime() }); 

Esta resuelto mi problema, pero hay que recordar para eliminarlo, antes de la producción Goto.

+0

¡Impresionante! Podría ser 'app.myDevModeVariable && require.config ({urlArgs:" v = "+ (new Date()). GetTime()});' – zsitro

Cuestiones relacionadas