2012-03-08 4 views
12

Sto usando RequireJS (la versione jQuery) e voglio aggiungere i parametri GET ai miei script per evitare il caching indesiderato.Parametri di interruzione della cache dell'URL con RequireJS?

Sto usando the urlArgs parameter, come suggerito nei documenti. Questo è il mio app-build.js di file:

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

Poi ho costruire il progetto come segue:

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

L'uscita nella directory app-build ora contiene sia require-jquery.js, che è lo stesso file come in precedenza, e require-jquery.js?cache=v2 , che è vuoto

Il file index.html non sembra avere alcun riferimento a cache=v2. E quando carico la pagina in un browser, non vedo alcun parametro cache=v2 aggiunto ad alcuno degli script.

Sto facendo qualcosa di sbagliato?

risposta

0

Vorrei provare a utilizzare un file build.js diverso per l'ottimizzatore rispetto al file build.js che si utilizza l'applicazione live. In base alla descrizione, lo script di ottimizzazione non sembra gestire correttamente il parametro urlArgs (poiché sta emettendo un file chiamato require-jquery.js? Cache = v2).

Non mi aspetto che cache = v2 venga visualizzato in index.html (perché lo farebbe?), Ma hai ragione di aspettarti nel registro delle attività di rete.

1

La documentazione su urlArgs:

“Durante lo sviluppo può essere utile per utilizzare questo, però essere sicuri di rimuoverlo prima di distribuire il codice”

e this issue from Github, James Burke: “non fare prova ad usare urlArgs durante la compilazione "

1

Il parametro urlArgs è più di una configurazione di runtime (cioè, solo capito da RequireJS, non dall'ottimizzatore r.js), apparentemente a causa del suo autore stated convinzione che sia adatto solo allo sviluppo (e B annuncio "server di sviluppo che non invia intestazioni appropriate). Così ci si sia necessario configurarlo nella chiamata require.config (in un file .js caricato da require.js, tipicamente main.js o config.js):

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

    urlArgs: "cache=v2" 
}); 

Oppure, per quest'altro SO answer, devi definirlo direttamente in un blocco <script> prima di caricare require.js.