2012-03-08 32 views
12

Estoy usando RequireJS (la versión de jQuery) y quiero agregar parámetros GET a mis scripts para evitar el almacenamiento en caché no deseado.Parámetros de eliminación de memoria caché de URL con RequireJS?

Estoy usando the urlArgs parameter, como se sugiere en los documentos. Este es mi app-build.js archivo:

({ 
    appDir: "../", 
    baseUrl: "scripts/", 
    urlArgs: "cache=v2", 
    ... 

Entonces construir el proyecto de la siguiente manera:

$ node ../../r.js -o app.build.js 

La salida en el directorio app-build contiene ahora ambos require-jquery.js, que es el mismo archivo que anteriormente, y require-jquery.js?cache=v2 , que está en blanco

El archivo index.html no parece tener ninguna referencia a cache=v2. Y cuando cargo la página en un navegador, no veo ningún parámetro cache=v2 agregado a ninguno de los scripts.

¿Estoy haciendo algo mal?

Respuesta

0

Intentaría utilizar un archivo build.js diferente para el optimizador frente al archivo build.js que utiliza ejecutando la aplicación en vivo. Según su descripción, el script del optimizador no parece manejar correctamente el parámetro urlArgs (ya que está generando un archivo llamado require-jquery.js? Cache = v2).

No esperaba que cache = v2 apareciera en index.html (¿por qué lo haría?), Pero está en lo cierto al esperarlo en el registro de actividad de la red.

1

Los documentos sobre urlArgs:

“Durante el desarrollo que puede ser útil el uso de esto, sin embargo asegúrese de retirar antes de desplegar su código”

y this issue from Github, James Burke: “no hacer intente utilizar urlArgs durante la construcción”

1

parámetro los urlArgs es más de una configuración de ejecución (es decir, solamente entendido por RequireJS, no el r.js optimizador), aparentemente debido a stated creencia de su autor que sólo es adecuado para el desarrollo (y B ad "servidores de desarrollo que no envían encabezados adecuados). Así que más bien hay que configurarlo en su llamada require.config (en un archivo .js cargado por require.js, típicamente main.js o config.js):

require.config({ 
    // other config, like paths and shim 

    urlArgs: "cache=v2" 
}); 

O, por este otro SO answer, lo definiría directamente en un bloque <script> antes de cargar require.js.

Cuestiones relacionadas