द्वारा विभिन्न हैंडलर चला रहा है। मैं अपने वर्तमान अपाचे/मॉडपरल साइट को स्टर्मन में स्थानांतरित करने की कोशिश कर रहा हूं, और विभिन्न फ़ाइल एक्सटेंशन के लिए विभिन्न हैंडलर के साथ app.psgi बनाने की आवश्यकता है। Somthing अपाचे में के रूप में:मॉडेल कॉन्फ़िगरेशन को प्लेक में कनवर्ट करना - फ़ाइल एक्सटेंशन
<LocationMatch "(\.m|\.mh|\/)$">
SetHandler perl-script
PerlHandler MyApp::Mhandler
</LocationMatch>
<LocationMatch "(\.p|\.ph)$">
SetHandler perl-script
PerlHandler MyApp::Phandler
</LocationMatch>
अब मेरे पास है:
#app for handle .m and .mh
my $Mapp = Some::PSGI->handler(sub {
...
});
#app for handling .p and .ph
my $Papp = SomeOther::PSGI->handler(sub {
...
});
लेकिन कैसे बिल्डर उपयोग कैसे करें?
builder {
#any extension what is not .m .mh .p .ph - handle as static
#but, only when the request have any extension
enable "Plack::Middleware::Static",
path => __what here__, ???
root => "/my/doc/root";
#and what here to achieve the following "rules".
#??? $Papp
#default $Mapp
};
आवश्यकता "नियम":
- किसी भी विस्तार नहीं करता है, तो अनुरोध करता है या अनुरोध के साथ '/' समाप्त होता है
$Mapp
साथ संभाला जाना चाहिए - यदि अनुरोध कुछ एक्सटेंशन के साथ समाप्त होता है, तो
.m
और.mh
$Mapp
.p
और.ph
द्वारा नियंत्रित किया जाना चाहिए एक्सटेंशन के साथ द्वारा$Papp
- संभाला जाना चाहिए अन्य सभी फ़ाइलें (.css .js .pdf .jpg जैसे ...) स्थिर के रूप में संभाला जाना चाहिए।
ज़रूर, कुछ पेड़ में हर स्थिर फ़ाइल डाल बहुत आसान हो जाएगा, लेकिन वर्तमान एप्लिकेशन दिया है और अब मैं केवल यह Startman में स्थानांतरित करना चाहते हैं, पुनर्रचना - बाद में।
हुह! इसे समझने के लिए जा रहे हैं। :) – kobame
लेकिन हाँ! मुख्य चाल स्टेटिक के पथ में "उप" का उपयोग कर रही है, और निर्णय के लिए दो ऐप्स को समूहबद्ध कर रही है। बीटीडब्ल्यू, अभी तक किसी भी टाई का उपयोग नहीं किया ..;) बहुत धन्यवाद !!! :) – kobame