मैं अपनी परियोजना को एएसपीएनईटी 5 में अपग्रेड कर रहा हूं। मेरा आवेदन एक कोणीय जेएस वेब ऐप है जो एचटीएमएल 5 यूआरएल रूटिंग (HTML5 History API) का उपयोग करता है।एएसपी.नेट 5 एचटीएमएल 5 इतिहास
मेरे पिछले ऐप्लिकेशन में मैं की तरह कोड के साथ URL पुनर्लेखन आईआईएस मॉड्यूल का इस्तेमाल किया:
<system.webServer>
<rewrite>
<rules>
<rule name="MainRule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" matchType="Pattern" pattern="api/(.*)" negate="true" />
<add input="{REQUEST_URI}" matchType="Pattern" pattern="signalr/(.*)" negate="true" />
</conditions>
<action type="Rewrite" url="Default.cshtml" />
</rule>
</rules>
</rewrite>
<system.webServer>
मुझे पता है मैं बंदरगाह इस सकता है लेकिन मैं अपने विंडोज़ निर्भरता कम करना चाहते हैं। मेरे पढ़ने से मुझे लगता है कि मुझे इसे पूरा करने के लिए एएसपी.नेट 5 मिडलवेयर का उपयोग करने में सक्षम होना चाहिए।
मुझे लगता है कि कोड ऐसा कुछ दिखाई देगा लेकिन मुझे लगता है कि मैं बहुत दूर हूं।
app.UseFileServer(new FileServerOptions
{
EnableDefaultFiles = true,
EnableDirectoryBrowsing = true
});
app.Use(async (context, next) =>
{
if (context.Request.Path.HasValue && context.Request.Path.Value.Contains("api"))
{
await next();
}
else
{
var redirect = "http://" + context.Request.Host.Value;// + context.Request.Path.Value;
context.Response.Redirect(redirect);
}
});
अनिवार्य रूप से, मैं कुछ भी है कि मार्ग /api
या /signalr
शामिल करना चाहते हूँ। एएसपीएनईटी 5 में इसे पूरा करने के सर्वोत्तम तरीके पर कोई सुझाव?
हां, आप इसे 'मिडलवेयर' –
के साथ प्राप्त कर सकते हैं यह दिखाने के लिए कि आप इसे कैसे पूरा कर सकते हैं? – amcdnl
'गिटहब' पर बहुत सारे 'मिडलवेयर' नमूने हैं। एक मैंने लिखा: https://github.com/aguacongas/chatle/tree/dev/src/ChatLe.HttpUtility –