2015-07-14 11 views
10

domande simili sono state fatte prima, riguardo ai grails 2 (.3, .4). Trovo strano che non sia riuscito a trovare un modo per farlo, come mi sembra un caso d'uso standard.Grail 3.0 html statico in run-app

Voglio semplicemente pubblicare pagine HTML, inclusi i loro file .css e .js (contenuti angolari e jquery) quando eseguo l'esecuzione di grails run-app.

Desidero controllare se le mie chiamate http sono gestite correttamente su entrambi i lati, senza la necessità di distribuire un file .war e la configurazione di un database.

afaik grails run-app avvia semplicemente un jetty/tomcat - entrambi i quali possono ovviamente servire pagine .html. Cosa devo fare per far sì che i tool di sviluppo grail distribuiscano i miei file?

ho bisogno di fare HTTP richieste, modo da utilizzare un server diverso violerebbe JS-SOP, durante la distribuzione del .war sarebbe notevolmente rallentare il processo di sviluppo

che ho finora trovato solo jsonp goffo , proxy, soluzioni di distribuzione .war, o soluzioni per graal 2.x

ho provato posizionare tutti i file letteralmente ovunque nella struttura dei progetti (/src/main, /src/main/resources, /src/main/public, la cartella beni e le relative sottocartelle, creato le directory web-app in ogni sottodirectory, le directory Init, domain, conf - tu la chiami)

+0

Hai mai a capire come caricare la collegata '' CSS' e file js' in 'file html' statici, mentre mantenendo il tuo 'HTML' sotto la directory' src/main/resources/public'? Ad esempio, grails mantiene il mio 'bootstrap.css' sotto' grails-app/assets/bower/bootstrap/bootstrap.css'. Quindi fare riferimento a questo all'interno del mio 'HTML' statico risulta essere difficile. – Andrew

risposta

13

Aggiungere il index.html a src/main/resources/public

Quindi aggiungere questo per UrlMappings.groovy:

"/"(redirect:"/index.html") 


Per graal> = 3.0.12

Location di risorse statiche

In per risolvere un iss su come vengono trattate le richieste POST per le applicazioni REST su risorse inesistenti, le risorse statiche ubicate in src/main/resources/public sono ora risolte in/static/** URI per impostazione predefinita, anziché l'URI di base/**. Se si desidera ripristinare il comportamento precedente aggiungere la seguente configurazione:

grails.resources.pattern = '/ **'

https://github.com/grails/grails-core/releases/tag/v3.0.12

+1

Stavo cercando dove mettere questo modello in Grails 3.1.7. È in 'application.yml',' grails: risorse: modello: '/ **' ' – Guus

2

Contrariamente alla risposta accettata, non è necessario ho bisogno di un reindirizzamento. Ho fatto in grado di fare questo lavoro con la seguente configurazione:

UrlMappings.groovy "/"(uri: "/index.html")

applicazione.yml grails: resources: pattern: '/**'

Infine, è solo bisogno di avere il file index.html trova sotto src/main/webapp

+0

Questo è in Grails 3.1.14, FWIW –