2015-02-19 44 views
8

La mia app utilizza Spring Boot sul retro e un sito SPA (angolare) sul front-end. Attualmente sto servendo la pagina index.html dalla cartella webapp, che funziona automaticamente senza bisogno di alcuna configurazione. Ora ho integrato un processo di compilazione per il front end usando gulp e tutte le fonti create sono "copiate" in una directory build. Ora vorrei servire il file index.html dalla directory build come la mia pagina principale.Indice indice di avvio a molla

Ho provato spring.application.index=build/index.html e alcune altre impostazioni di avvio primaverile, ma non ha funzionato. Credo che nessun codice sia necessario dalla mia attuale base di codice, ma se manca qualcosa fammelo sapere.

C'è un modo per configurarlo nel file applications.properties? Devo creare un controller per la pagina indice? O c'è un altro modo per modificare il comportamento predefinito?

grazie

+0

Possiamo sapere di più sulla configurazione del – bmscomp

risposta

10

Andando dal common Spring Boot properties, si dovrebbe essere in grado di modificare questa proprietà:

spring.application.index= 

Certo, ho tendono a creare un controller minimal 'casa' con un @RequestMapping("/") comunque. :)

Vale la pena notare che la directory build si troverà sul classpath solo se è inferiore a src/main/resources. Vale anche la pena ricordare che i contenuti di src/main/webapp non vengono raggruppati automaticamente nel contenitore. src/main/resources/static è dove Spring Boot cercherà i tuoi file web statici. In quanto tale, ci sono un paio di alternative per te.

Opzione 1: configurare il build Grunt per l'output in una directory con src/main/resources/static.

Opzione 2: configura il tuo strumento di compilazione Java per prendere l'output di Grunt e inserirlo nella directory delle risorse, in modo che si trovi sul classpath. Ad esempio, utilizzando Maven, quanto segue sposterebbe il contenuto di una directory denominata build nel numero src/main/rescources/static.

<plugin> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.6</version> 
    <executions> 
    <execution> 
     <id>copy-resources</id> 
     <phase>validate</phase> 
     <goals> 
     <goal>copy-resources</goal> 
     </goals> 
     <configuration> 
     <outputDirectory>${basedir}/target/classes/static</outputDirectory> 
     <resources> 
      <resource> 
      <directory>build</directory> 
      <filtering>true</filtering> 
      </resource> 
     </resources> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
+0

ho provato "/build/index.html", "costruire/index.html", "classpath: costruire/index.html" e alcune altre versioni, non cambia nulla. Ho anche provato la soluzione suggerita da http://stackoverflow.com/questions/27836584/spring-boot-override-index-page-from-webjar. Lo proverò con un controller "casa". – KenavR

+0

Ok, il controller di casa ha funzionato, suppongo che me ne andrò e non perderò tempo a capire perché gli altri modi non hanno funzionato, grazie. – KenavR

+0

Non sono sicuro che si tratti di alternative utili, ma ho aggiunto alcune opzioni su come configurare la build per spostare le risorse generate da Grunt nelle posizioni giuste. Ma se un paio di linee in un controller funzionano per te, allora come dici tu, probabilmente non vale la pena spendere troppo tempo a sperimentare. – Steve

Problemi correlati