2015-02-19 7 views
8

मेरा ऐप बैक एंड पर स्प्रिंग बूट और फ्रंट एंड पर एक एसपीए (कोणीय) साइट का उपयोग करता है। वर्तमान में मैं webapp फ़ोल्डर से index.html पृष्ठ की सेवा कर रहा हूं, जो स्वचालित रूप से कोई कॉन्फ़िगरेशन आवश्यक नहीं है। अब मैंने गलप का उपयोग करके फ्रंट एंड के लिए एक बिल्ड प्रक्रिया को एकीकृत किया है और सभी निर्मित स्रोतों को build निर्देशिका में "कॉपी किया गया" है। अब मैं build निर्देशिका से index.html फ़ाइल को अपने मुख्य पृष्ठ के रूप में सेवा देना चाहता हूं।वसंत बूट वैकल्पिक सूचकांक पृष्ठ

मैंने spring.application.index=build/index.html और कुछ अन्य वसंत बूट सेटिंग्स की कोशिश की, लेकिन कुछ भी काम नहीं किया। मेरा मानना ​​है कि मेरे वर्तमान कोड बेस से कोई कोड जरूरी नहीं है लेकिन अगर कुछ गुम है तो मुझे बताएं।

क्या applications.properties फ़ाइल में इसे कॉन्फ़िगर करने का कोई तरीका है? क्या मुझे इंडेक्स पेज के लिए नियंत्रक बनाने की ज़रूरत है? या डिफ़ॉल्ट व्यवहार को बदलने का कोई और तरीका है?

धन्यवाद

+0

हम आपके विन्यास – bmscomp

उत्तर

10

common Spring Boot properties से जा रहे हैं, तो आप इस संपत्ति को संशोधित करने में सक्षम होना चाहिए:

spring.application.index= 

वैसे, मैं वैसे भी एक @RequestMapping("/") साथ एक न्यूनतम 'घर' नियंत्रक बनाने के लिए करते हैं। :)

यह ध्यान देने योग्य है कि build निर्देशिका केवल क्लासपाथ पर होगी यदि यह src/main/resources के अंतर्गत है। यह भी उल्लेखनीय है कि src/main/webapp की सामग्री स्वचालित रूप से जार में बंडल नहीं होती है। src/main/resources/static वह जगह है जहां स्प्रिंग बूट आपकी स्थिर वेब फ़ाइलों की तलाश करेगा। ऐसे में, आपके लिए कुछ विकल्प हैं।

विकल्प 1: src/main/resources/static के तहत निर्देशिका में आउटपुट के लिए अपनी ग्रंट बिल्ड कॉन्फ़िगर करें।

विकल्प 2: ग्रंट आउटपुट लेने और इसे अपनी संसाधन निर्देशिका में रखने के लिए अपने जावा बिल्ड टूल को कॉन्फ़िगर करें, ताकि यह क्लासपाथ पर हो। उदाहरण के लिए, मेवेन का उपयोग करके, निम्नलिखित build नामक निर्देशिका की सामग्री को आपके 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

बारे में अधिक पता कर सकते हैं मैं "/build/index.html", "index.html निर्माण /", की कोशिश की "classpath: index.html निर्माण /" और कुछ अन्य संस्करणों, कुछ भी नहीं बदलता है। मैंने सुझाए गए समाधान का भी प्रयास किया - http://stackoverflow.com/questions/27836584/spring-boot-override-index-page-from-webjar। मैं इसे "होम" नियंत्रक के साथ आज़माउंगा। – KenavR

+0

ठीक है घर नियंत्रक काम करता है, मुझे लगता है कि मैं उस पर छोड़ दूंगा और यह समझने के लिए समय बर्बाद नहीं करेगा कि अन्य तरीकों से क्यों नहीं, धन्यवाद। – KenavR

+0

मुझे यकीन नहीं है कि वे उपयोगी विकल्प हैं, लेकिन मैंने गंट-जेनरेट किए गए संसाधनों को सही स्थानों पर स्थानांतरित करने के लिए बिल्ड को कॉन्फ़िगर करने के तरीके पर कुछ विकल्प जोड़े हैं। लेकिन यदि नियंत्रक में कुछ पंक्तियां आपके लिए काम कर रही हैं, तो जैसा कि आप कहते हैं, शायद यह प्रयोग करने में बहुत अधिक समय व्यर्थ नहीं है। – Steve