2015-07-26 34 views
14

मैं अपने एएसपी.NET वेब एपीआई प्रोजेक्ट में स्वैगर दस्तावेज़ जोड़ने के लिए स्वाशबकल का उपयोग करता हूं। मैं सीएसएस इंजेक्शन के बिना प्रलेखन पृष्ठ से डिफ़ॉल्ट शीर्षलेख (swagger लोगो के साथ) कैसे छिपा सकता हूं?स्वैगर (स्वाशबकल) छुपाएंडर

उत्तर

7

दुर्भाग्य से मुझे लगता है कि आप इसे जावास्क्रिप्ट द्वारा अभी तक कर सकते हैं।

अपने SwaggerConfig.cs में आप इस प्रकार का .js फ़ाइल इंजेक्षन कर सकते हैं:

document.querySelector("#header").style.display = "none"; 
:

.EnableSwaggerUi(c => 
{       
    c.InjectJavaScript(thisAssembly, "yournamespace.yourscript.js"); 
}); 
इस स्क्रिप्ट आप जो चाहें कर सकते हैं, शीर्ष लेख को छिपाने की तरह में

तो

यह post दिखाता है कि शीर्ष पर दो टेक्स्ट बॉक्स डालने वाले हेडर को कैसे अनुकूलित करें।

10

जब मैंने ऊपर सुझाए गए जेएस इंजेक्शन दिया, तो पेज लोडिंग पर हेडर झपकी दे रहा था। यह एक सेकंड के लिए दिखाया गया था और फिर स्क्रिप्ट द्वारा अक्षम किया गया था। ऐसा दृष्टिकोण है जो मेरे लिए बेहतर काम करता है। https://github.com/domaindrivendev/Swashbuckle/issues/476

आप जे एस के बजाय सीएसएस इंजेक्षन कर सकते हैं:

#header { 
display:none; 
} 
+0

मेनू के छिपाने के लिए आपका दृष्टिकोण बेहतर है :) – fabriciorissetto

1

जब मैं पहली बार इस मैं सीएसएस/जे एस इंजेक्शन लगाने शुरू कर दिया में भाग लेकिन हर बार यह एक संघर्ष और "hackish" प्रकार इंजेक्शन के साथ सामान को छिपाने के लिए था सीएसएस। तो थोड़ी देर बाद मैंने इंडेक्स फ़ाइल को इस index.html के संशोधित संस्करण के साथ बदल दिया, आप इसे जितनी चाहें संशोधित कर सकते हैं। आईडी = हेडर के साथ div को हटाने से हेडर हटा दिया जाएगा। इसके अलावा यह लोगो को बदलने आदि जैसी चीज़ें बहुत आसान बनाता है। लोगो भाग के लिए आप लोगो को src 64-बिट एन्कोड में सेट कर सकते हैं जैसा कि encode image दिखाया गया है। टैब में लिंक किए गए फेविकॉन को भी हटाकर लाइन को हटाने के समान सरल है। अन्य पृष्ठों आदि के लिंक भी जोड़ना तुच्छ है। इंडेक्स को इंजेक्शन करना

c.CustomAsset("index", thisAssembly, "Path.To.index.html"); 

एम्बेडेड संसाधन में अपनी अनुक्रमणिका सेट करना याद रखें।

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