2011-10-19 4 views
14

अंगूठी (और लीन-रिंग टूल्स) का उपयोग करना - मैं विकास में चलते समय दस्तावेज़ों के अनुसार "संसाधन" आदि से स्थिर फाइलों को पूरा करने में सक्षम हूं - हालांकि - कब मैं lien uberwar के माध्यम से चीजों को पैकेज करता हूं मुझे नहीं पता कि कंटेनर में चलते समय उन्हें उन फ़ाइलों को कैसे सेवा दी जाए। मैं रैप-संसाधन, या सेटिंग: संसाधन-पथ पर विवादित दस्तावेज़ देखता हूं लेकिन कोई भी काम नहीं करता है।रिंग/कंपोजर के साथ स्थैतिक फाइलों की सेवा करना - युद्ध से

+0

Google App Engine के लिए मैं केवल 'war /' निर्देशिका में स्थिर फ़ाइलों को ही कर सकता था। टेम्पलेट फाइलें (मैं सोया का उपयोग करता हूं) वास्तव में 'संसाधन /' निर्देशिका में रहती है और किसी भी तरह से युद्ध निर्देशिका में संकलित हो जाती है। मुझे लगता है कि यह संभव नहीं है/आपके मामले में काम नहीं करता है? – Paul

उत्तर

23

Compojure के Getting Started Wiki के अनुसार, route/resources अपने पथ नीचे रख:

(defroutes main-routes 
    (GET "/" [] "<h1>Hello World Wide Web!</h1>") 
    (route/resources "/") 
    (route/not-found "Page not found")) 

... और फिर, अपनी परियोजना में एक फ़ोल्डर resources/public बनाने, आपकी स्टैटिक फ़ाइलें डाल दिया। इन फ़ाइलों का जिक्र करते समय, /resources/public निहित है, इसलिए आप कुछ लिख सकते हैं जैसे: (include-css "/css/site.css")

यहां an example that deploys to cloudbees है।

+2

क्या 'resrouce/public' के बजाय' संसाधन/सार्वजनिक 'होना चाहिए? – kristianlm

+0

हां, ऐसा लगता है कि किसी ने इसे सही किया है। –

+1

माफ करना माइकल, मैं जादू नहीं कर सकता! मैं कहने की कोशिश कर रहा था कि 'संसाधन' निर्देशिका बहुवचन रूप में होनी चाहिए, मुझे लगता है। – kristianlm

18

compojure.route/resources आपको जो चाहिए वह करना चाहिए।

बस फ़ाइलों को resources/public में डालें और फिर अपनी मार्ग सूची के अंत में (resources "/") एक मार्ग जोड़ें।

आपको सही तरीके से काम करने के लिए इसके लिए हाल ही में हाल ही में लीन-रिंग की आवश्यकता है; लीन-रिंग के पुराने संस्करण सार्वजनिक संपत्तियों के लिए संसाधन निर्देशिका का समर्थन नहीं करते हैं।

संबंधित मुद्दे