2013-02-25 13 views
10

Ho un fastidioso problema con la mia nuova app Grails. Sto cercando di prendere in giro un progetto per un sito che farò, ma ogni volta che faccio dei cambiamenti nel mio css non influenzerà l'applicazione in esecuzione. Non importa quanto grandi cambiamenti devo interrompere l'applicazione e poi eseguirla di nuovo.Grails non caricherà le modifiche apportate alle risorse statiche (tranne quando si riavvia)

Questo è molto frustrante, ho trasformato la cache in Chrome e anche se vado al documento specifico la risorsa è ancora vecchia. Cosa posso fare per risolvere questo problema? Posso apportare modifiche nei miei file gsp e le modifiche appariranno ma non nel mio css.

Attualmente sto caricando la risorsa all'interno di un file di layout come questo:

<link rel="stylesheet" href="${resource(dir: 'css', file: 'app.css')}" type="text/css"> 

Se avete bisogno di me di fornire tutte le ulteriori informazioni, basta chiedere. Sto usando Grails 2.2.0.

risposta

19

Aggiungi questo al vostro Config.groovy (probabilmente solo per lo sviluppo)

grails.resources.debug = true 

Leggere il docs per maggiori informazioni.

+0

Grazie per questo, stavo cercando ma non ho potuto davvero trovarlo. Questo è qualcosa aggiunto nella versione più recente di Grails? Perché ricordo che non ho dovuto aggiungerlo in 2.1. – Ms01

+0

Non fa parte dei graal. Fa parte del plugin delle risorse che ora è un plug-in predefinito di Grails. – Gregg

+1

Grande. Ma come faccio a impostarlo solo sull'ambiente di sviluppo? –

4

Sembra che la risposta di Gregg non funzioni per 1.3.7 (forse è qualcosa aggiunto in 2.x?). Un metodo che ho trovato che rende possibili aggiornamenti rapidi di CSS è includere un GSP separato come modello nell'intestazione della pagina.

Cioè, creare un file chiamato "_css.gsp" (prefisso di sottolineatura è richiesto) nella stessa directory dei file di visualizzazione, riempirlo con css standard circondato da tag di stile html e quindi includere quanto segue nel proprio layout intestazione o pagina:

<g:render template="css" /> 

Con questo in luogo, il contenuto di _css.gsp viene iniettato nella pagina. E posso apportare modifiche a _css.gsp e sono immediatamente riflesse dopo l'aggiornamento della pagina senza dover riavviare Grails. Spero che questo aiuti qualcuno in Grails pre-2.x!

+0

anche una nota dal documento Grails su dove incollare i file GSP del modello: "Si noti che se il valore dell'attributo modello inizia con un '/' verrà risolto in relazione alla cartella Viste. Ciò è utile per la condivisione di modelli tra visualizzazioni. Senza il leader '/' verrà prima risolto rispetto alla cartella di visualizzazione del controller corrente, in caso contrario, la cartella delle visualizzazioni di livello superiore. In entrambi i casi il file del modello deve essere denominato con un trattino di sottolineatura principale ('_') ma fatto riferimento nell'attributo template senza quel carattere di sottolineatura o il suffisso '.gsp'. " –

Problemi correlati