स्थिर फ़ाइलों को सेवा देने के लिए एएसपी.Net रूटिंग (एमवीसी नहीं) का उपयोग किया जा सकता है?स्थिर फ़ाइलों को सेवा देने के लिए एएसपी.NET रूटिंग का उपयोग
मैं
http://domain.tld/a/b/c/picture.jpg
के लिए रास्ते में
http://domain.tld/static/picture.jpg
करना चाहते कहो और मैं इस अर्थ में कि फिर से लिखा यूआरएल मक्खी पर गणना की जाती है में गतिशील रूप से यह करना चाहते हैं। मैं एक बार और सभी के लिए एक स्थिर मार्ग स्थापित नहीं कर सकता।
routes.Add(
"StaticRoute", new Route("static/{file}", new FileRouteHandler())
);
FileRouteHandler.ProcessRequest
विधि में मैं /static/picture.jpg
से /a/b/c/picture.jpg
के लिए पथ को फिर से लिखने कर सकते हैं:
वैसे भी, मैं इस तरह एक मार्ग बना सकते हैं। मैं फिर स्थैतिक फाइलों के लिए एक हैंडलर बनाना चाहता हूं। एएसपी.NET इस उद्देश्य के लिए StaticFileHandler
का उपयोग करता है। दुर्भाग्य से, यह कक्षा आंतरिक है। मैं हैंडलर प्रतिबिंब का उपयोग कर बनाने की कोशिश की है और यह वास्तव में काम करता है:
Assembly assembly = Assembly.GetAssembly(typeof(IHttpHandler));
Type staticFileHandlerType = assembly.GetType("System.Web.StaticFileHandler");
ConstructorInfo constructorInfo = staticFileHandlerType.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, Type.EmptyTypes, null);
return (IHttpHandler) constructorInfo.Invoke(null);
लेकिन आंतरिक प्रकार का उपयोग कर उचित समाधान हो प्रतीत नहीं होता है। एक और विकल्प है अपने StaticFileHandler
को लागू करना, लेकिन ऐसा ठीक से करना (श्रेणियों और ईटैग जैसी HTTP सामग्री का समर्थन करना) गैर-तुच्छ है।
मुझे एएसपी.नेट में स्थिर फाइलों के रूटिंग से कैसे संपर्क करना चाहिए?
मेरे लिए यह काम करता है, लेकिन मैं किसी क्षेत्र के व्यू फ़ोल्डर में जेएस फ़ाइल को पार्स नहीं कर सकता, इसे ठीक करने के लिए, मैं क्षेत्र के मूल फ़ोल्डर में /Areas/MyArea/ClientScripts/foo.js जैसे किसी अन्य फ़ोल्डर का उपयोग करता हूं – eka808
किसी भी तरह से मुझे पहेली में एक टुकड़ा याद आ रहा है ... आपकी स्थिर फाइलों के मार्गों को अनदेखा करने से '/ static' से'/a/b/c' (जिसे ओपी ने पूछा) से रूटिंग में मदद मिलती है? क्या आप कृपया अपने उत्तर पर कुछ और प्रकाश डालेंगे, मैं वास्तव में इस समाधान को समझना चाहूंगा। – Oliver
ओलिवर से सहमत है कि यह ओपी का जवाब नहीं देता है और समाधान के रूप में स्वीकार नहीं किया जाना चाहिए। – dhochee