Di recente abbiamo adottato questa stessa decisione. Alla fine, abbiamo optato per l'utilizzo di Gulp, un gestore di attività basato su Javascript che utilizzi in fase di sviluppo e la mia raccomandazione è che tu faccia lo stesso. Gulp ha un'enorme community e userbase e tonnellate di plugin. Può guardare i file per le modifiche man mano che si sviluppano e automaticamente concatenare, minimizzare (e circa 1000 altre cose - vedere http://gulpjs.com/plugins/).
Utilizzando un plugin Gulp chiamato gulp-rev, i file vengono rinominati automaticamente, come file-k34jzkl3.css, per bloccare le cache del browser quando vengono apportate modifiche. Usando un altro plugin gulp, gulp-manifest, generiamo automaticamente un file JSON che mappa il file CSS originale con il nome cachebusted (ad esempio "file.css": "file-k34jzkl3.css") e quindi abbiamo un semplice CFC che traduce quei nomi nel posto giusto nel nostro HTML. Questo è ciò che il nostro file JSON manifesto appare come:
{
"baseline.css": "/global/baseline-82bcd2ab92.css",
"user.css": "/global/user-0d1d32170c.css"
}
E allora il nostro markup CFML appare così:
<link rel="stylesheet" href="#application.asset.getAsset("baseline.css")#">
che genera output HTML come:
<link rel="stylesheet" href="/global/baseline-82bcd2ab92.css">
ho creato un repo con il codice su https://github.com/ghidinelli/assets.cfc
fonte
2015-10-06 01:37:46
Hai visto CFStatic (https://github.com/DominicWatson/cfstatic)? Fa tutto questo e altro. –
CFStatic è bello, ma non ho mai avuto il caldo e il rischio di usarlo - sembra che la minimizzazione dei file JS e CSS non sia qualcosa che la CF dovrebbe fare. Ho usato il nodo con grunt per minificare i file vengono aggiornati. Ho un codice che carica i file "grezzi" quando passo un parametro URL per aiutarmi a eseguire il debug quando necessario. –
Quale server web stai usando? Io uso IIS e sto utilizzando IISpeed (PageSpeed per IIS) per concat + Minare automaticamente i file JS/CSS senza dover modificare alcun codice su alcun progetto. Le ottimizzazioni vengono eseguite dal server Web dopo che ColdFusion ha terminato la generazione del contenuto HTML. (NOTA: è estremamente utile per la pubblicazione live/in tempo reale/memorizzata nella cache, ma non è consigliabile per "raggruppare" per ridistribuire). –