2012-08-15 19 views
10

जैसे स्थिर संसाधनों को रीफ्रेश कैसे करें मैं होस्टेड मोड में ग्रहण में जीडब्ल्यूटी एप्लीकेशन विकसित कर रहा हूं।जीडब्ल्यूटी + ग्रहण - सीएसएस

जब मैं सीएसएस में कुछ बदलता हूं तो मैं इसे ब्राउज़र में नहीं देख सकता। मैं CTRL + F5 का उपयोग कर ब्राउज़र में पूर्ण पुनः लोड करने का प्रयास कर रहा हूं, ग्रहण में अपनी ऐप को पुनरारंभ करना और कोई बदलाव नहीं।

केवल एक चीज जो मदद करता है मैवेन क्लीन इंस्टॉल का उपयोग करके मेरे ऐप का पुनर्निर्माण करता है, ग्रहण में ऐप को पुनरारंभ करता है और फिर मैं परिवर्तन देख सकता हूं। इसमें बहुत समय लगता है।

कोई विचार क्या मैं गलत कर रहा हूं? मुझे लगता है कि बेहतर तरीका होना चाहिए।

संबंध है, लुकास

+0

मुझे यकीन है कि मैं पूरी तरह से Ctrl + F5 पर भरोसा नहीं कर रहा हूँ - आप कैश को साफ और देखते हैं कि अगर एक फर्क नहीं पड़ता के लिए अपने ब्राउज़र के मेनू के माध्यम से जा कोशिश कर सकते हैं। –

+0

किसी भी दर पर, विकास मोड दृश्य में "सर्वर को पुनरारंभ करें" बटन (यह दो गोलाकार पीले तीर है) केवल वही करना है जो आप पूछ रहे हैं। लेकिन मैंने एक ही चीज़ का अनुभव किया है; यह हमेशा इसे काट नहीं करता है। –

+0

वेब सर्वर पुनः लोड करें काम नहीं करता है। मैं क्लासिक सीएसएस फ़ाइल का उपयोग कर रहा हूं, लेकिन मेरे कॉलेग्यूज जो विभिन्न परियोजनाओं में जीडब्ल्यूटी के साथ काम करते हैं, संसाधन संसाधन बंडल https://developers.google.com/web-toolkit/doc/latest/DevGuideClientBundle का उपयोग कर सीएसएस फ़ाइलों की विभिन्न लोडिंग के बारे में कुछ बताते हैं। मैंने अभी तक इसका अध्ययन नहीं किया है लेकिन मैं इसे बाद में देखूंगा और मैं कुछ प्रयोग पोस्ट करूंगा। सलाह के लिए धन्यवाद। – Gondri

उत्तर

0

इस समस्या को हल करने के लिए 3 तरीके हैं। मैं ग्रहण का उपयोग नहीं करता हूं (हालांकि इंटेलिजे के साथ कोड और मेरी कमांड लाइन ग्रैडल स्क्रिप्ट से होस्टेड मोड का उपयोग करें), लेकिन उम्मीद है कि उन्हें सभी को वैसे भी काम करना चाहिए।

पहला यह पता लगाने के लिए है कि आपका होस्टेड मोड कहां से एक विस्फोटित युद्ध निर्देशिका से फाइलों की सेवा कर रहा है। वहां, आप सीएसएस फ़ाइल पा सकते हैं, जो आपकी सीएसएस फ़ाइल की एक सटीक प्रतिकृति होगी जिसे आप बदलने की कोशिश कर रहे हैं। वहां अपने संशोधन करें, पुनः लोड करें, संशोधित करें, आदि, और फिर जब आप पूरा कर लें तो उस फ़ाइल की प्रतिलिपि बनाना न भूलें और उसे अपनी स्रोत निर्देशिका में पेस्ट करें। मैं वीआईएम का उपयोग करता हूं और आगे और पीछे स्विच करता हूं। मुझे यकीन है कि आप एक स्क्रिप्ट लिख सकते हैं जिसने मेजबान मोड समाप्त होने पर फ़ाइल को कॉपी किया था, अगर आप एक केनर थे।

उपयोगकर्ता 1570 9 21 अंक के रूप में दूसरी विधि (और एक बेहतर विधि), आपके UIBinder कोड में सीएसएस को एम्बेड करना है। उदाहरण के लिए, आप हो सकता है:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
     xmlns:g='urn:import:com.google.gwt.user.client.ui'> 

<ui:style> 
    .outsidePanel { 
     background: #00F; 
    } 
</ui:style> 

<g:HTMLPanel styleName="{style.outsidePanel}"> 
    Hello, World! 
</g:HTMLPanel> 

उदाहरण में ऊपर, आप ui अंदर सीएसएस संपादित कर सकते हैं: शैली अनुभाग, F5 मारा और बदलाव देखते हैं, तो अधिक परिवर्तन करने, आदि फ़ाइलों की प्रतिलिपि बनाने की आवश्यकता नहीं है ऊपर। https://developers.google.com/web-toolkit/doc/latest/DevGuideUiBinder#Hello_Stylish_World

तीसरा रास्ता फ़ायरफ़ॉक्स में गूगल क्रोम के देव उपकरण (Ctrl-Shift-आई) या F12 उपयोग करने के लिए है:

यहाँ और अधिक जानकारी के लिए एक अच्छा लिंक भी है। वहां आप अपनी फ़ाइल को संशोधित किए बिना सीएसएस इनलाइन संपादित कर सकते हैं। सभी सही मानों को फ़्यूचर करें, नए जोड़ें, पुराने को हटाएं, और फिर अपनी सीएसएस फ़ाइल में वही परिवर्तन करें। फिर आपको परिवर्तन देखने के लिए पुनर्वितरण रखने की आवश्यकता नहीं है।

मैं व्यक्तिगत रूप से # 2 और # 3 के संयोजन का उपयोग करता हूं।

+3

प्रश्न का लेखक वास्तव में एक सीएसएस क्लाइंट बंडल का उपयोग करने की वकालत करता है, यूआई में सीएसएस दर्ज नहीं करता है: बाइंडर, जो मुझे विश्वास है कि सबसे खराब विकल्प है। ऐप में प्रत्येक सीएसएस नियम एक ही स्थान पर एक बार लिखा जाना चाहिए - कोई अन्य दृष्टिकोण असंगतता का कारण बनता है और यदि बदलाव की आवश्यकता होती है तो बहुत सारे काम की आवश्यकता होती है, कई खाल के लिए कोई समर्थन नहीं है। –

1

मैं अपने ऐप के लिए बाहरी सीएसएस फ़ाइल का उपयोग करता हूं, और मैं क्रोम और फ़ायरफ़ॉक्स दोनों में सरल रीफ्रेश (कोई खाली कैश, सर्वर पुनरारंभ, इत्यादि) पर तुरंत अपने ब्राउज़र में सभी बदलावों को देखता हूं।

समस्या आपकी फ़ाइल के स्थान से संबंधित हो सकती है। मेरी फ़ाइल/युद्ध निर्देशिका में है, और मैं इसे सीधे संपादित करता हूं। एक और संभावना यह है कि आप अपने होस्ट पेज में अपनी फाइल का संदर्भ कैसे देते हैं। सुनिश्चित करें कि आपके पास "/myCss.css" जैसे सापेक्ष पथ हैं।

2

समस्या यह है कि देव मोड में src webapp फ़ोल्डर केवल स्टार्टअप पर लक्षित करने के लिए कॉपी किया गया है, और DevMode इसे रीफ्रेश नहीं करता है। एक कामकाज के रूप में आप copy-resources का उपयोग कर सकते हैं, जो फ्लाई पर परिवर्तन लागू करने का ख्याल रखता है।

<plugin> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>3.0.1</version> 
     <executions> 
      <execution> 
       <id>copy-resources</id> 
       <phase>validate</phase> 
       <goals> 
        <goal>copy-resources</goal> 
       </goals> 
       <configuration> 
        <outputDirectory>${project.build.directory}/gwt-webapp</outputDirectory> 
        <resources> 
         <resource> 
          <directory>src/main/webapp</directory> 
          <filtering>true</filtering> 
         </resource> 
        </resources> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
0

कोशिश अपने project.gwt.xml फ़ाइल में एक पंक्ति <stylesheet src="sheet.css" /> या <stylesheet src="/sheet.css" /> डाल करने के लिए।

सादर,

एड़ी