2010-07-03 9 views
5

मैं खोजने योग्य प्लगइन डिफ़ॉल्ट खोज पृष्ठ (http://localhost/searchable/) को अक्षम करने का प्रयास कर रहा हूं, लेकिन इसे करने का कोई तरीका नहीं मिला है। किसी को पता है कि यह कैसे किया जा सकता है, अधिमानतः एक कानूनी तरीके से, लेकिन यदि आवश्यक हो तो चालबाजी का सहारा लेना?grails अक्षम करें खोजने योग्य प्लगइन डिफ़ॉल्ट खोज पेज?

उत्तर

4

मैं आमतौर पर त्रुटि कोड हैंडलर को नियंत्रक को फिर से रूट करता हूं ताकि मैं कुछ लॉगिंग कर सकूं या दृश्य प्रस्तुत करने से पहले जो कुछ भी कर सकूं। आप उपयोग कर सकते हैं कि यहाँ भी:

class UrlMappings { 

    static mappings = { 

     "/searchable/$action?"(controller: "errors", action: "urlMapping") 

     "/$controller/$action?/$id?" { } 

     "/"(view:"/index") 

     "403"(controller: "errors", action: "accessDenied") 
     "404"(controller: "errors", action: "notFound") 
     "405"(controller: "errors", action: "notAllowed") 
     "500"(view: '/error') 
    } 
} 

जहां ErrorsController इस तरह दिखता है:

class ErrorsController { 

    def accessDenied = {} 

    def notFound = { 
     log.debug "could not find $request.forwardURI" 
    } 

    def notAllowed = {} 

    def urlMapping = { 
     log.warn "unexpected call to URL-Mapped $request.forwardURI" 
     render view: 'notFound' 
    } 
} 

और आप grails- में accessDenied.gsp, notFound.gsp, और notAllowed.gsp बनाने की आवश्यकता होगी ऐप/त्रुटियां

अपने कस्टम मैपिंग में 'छुपा' नियंत्रक भेजकर आप अप्रत्याशित पहुंच लॉग कर सकते हैं, लेकिन फिर भी इसके अस्तित्व को छिपाने के लिए 404 पृष्ठ प्रस्तुत कर सकते हैं।

+0

यह एक अच्छा विचार है, तो मैं इसे किसी अन्य संसाधन की तरह दिख सकता हूं जो त्रुटि नहीं मिला है। मुझें यह पसंद है! मैंने प्लगइन के साथ शामिल एक को ओवरराइट करने के लिए एक /views/searchable/index.gsp बनाया था, लेकिन मैं बस इससे छुटकारा पाउंगा और इसे इस तरह से कर दूंगा। धन्यवाद! –

+0

@ बर्ट - क्या स्टार्टअप पर UrlMapping को अक्षम/निकालने का कोई तरीका है? यह एक और अधिक सुरुचिपूर्ण समाधान होगा। –

+0

आप शायद इसे हटा सकते हैं, लेकिन मुझे शक है कि यह एक साधारण फिक्स होगा। फीचर अनुरोध के लिए एक अच्छे उम्मीदवार की तरह लगता है। जब हम नियंत्रक नामस्थान (तात्कालिक रूप से v2.2) करते हैं तो यह शायद लागू हो सकता है। –

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