वसंत: पथों के संबंध में / ** और / * का अंतर


83

जब हम पथों को देखें तो एक तारांकन के बजाय दो तारांकनों के बीच अंतर क्या है?

इससे पहले मैं अपने स्प्रिंग 3 प्रोजेक्ट में डेब्यू कर रहा था। मैं .swf का उपयोग करके जोड़ने की कोशिश कर रहा था

<spring:url var="flashy" value="/resources/images/flash.swf"/>

मेरे web.xml के रिसोर्ससर्वलेट जैसे दिख रहे हैं

<servlet-name>Resource Servlet </servlet-name>
<url-pattern>/resources/*</url-pattern>

लेकिन दुर्भाग्य से मुझे यह त्रुटि मिल रही थी:

WARN org.springframework.js.resources.ResourceServlet - An attempt to access a protected resource at /images/flash.swf was disallowed.

मुझे यह वास्तव में अजीब लगा क्योंकि imagesफ़ोल्डर में मेरे सभी चित्र एक्सेस किए गए थे लेकिन मेरे .swf "संरक्षित" कैसे आए?

बाद में, मैं बदलने का फैसला किया /resources/*करने के लिए /resources/**है और यह अंत में काम किया। मेरा सवाल है ... क्यों?


क्या आप सुनिश्चित हैं कि /resources/**काम करता है <url-pattern>?
axtavt

एक साइड नोट के रूप में, org.springframework.js.resource.ResourceServlet पदावनत किया जाता है। से स्प्रिंग वेब प्रवाह संदर्भ गाइड : "ध्यान दें संस्करण 3.0.4 के साथ शुरू है कि, स्प्रिंग फ्रेमवर्क ResourceServlet के लिए एक स्थानापन्न (देखें शामिल स्प्रिंग फ्रेमवर्क प्रलेखन )।"
informatik01

जवाबों:


49

यह एक पथ पैटर्न है जिसका उपयोग किया जाता है Apache ant, स्प्रिंग टीम इसे लागू करती है और पूरे ढांचे में इसका उपयोग करती है।

संदर्भ के लिए, AntPathMatcher का javadoc देखें ( नवीनतम javadoc में समस्या है, इसलिए मैं एक पुराना लिंक जोड़ता हूं)।

आपकी समस्या पर वापस, दस्तावेज़ के अनुसार, इसके केवल 3 नियम हैं:

  1. ? एक चरित्र से मेल खाता है
  2. * शून्य या अधिक वर्णों से मेल खाता है
  3. ** एक पथ में शून्य या अधिक 'निर्देशिकाओं' से मेल खाता है

1
क्या यह संभव है *कि मैच के लिए क्या संभव **नहीं है?
अलेक्जेंडर सुरफेल

3
ध्यान दें कि स्प्रिंग्स के AntPathMatcher में कीड़े हैं: यह चींटी पैटर्न शैली के अनुरूप नहीं है। उदाहरण: एंट के **/*.cssसाथ शुरू होने वाले रास्तों के लिए काम नहीं करेगा /, जबकि यह एंट स्टाइल सम्मेलनों के अनुसार होना चाहिए।
देवबाक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.