Ich aktualisiere mein Projekt auf ASPNET5. Meine Anwendung ist eine AngularJS-Webanwendung, die HTML5-URL-Routing verwendet (HTML5 History API).ASP.NET 5 HTML5-Verlauf
In meinem vorherigen app habe ich die URL Rewrite IIS-Modul mit Code wie:
<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>
Ich weiß, ich könnte diesen Port aber ich mag meine Fenster Abhängigkeiten minimieren. Von meiner Lektüre sollte ich in der Lage sein, ASP.NET 5 Middleware zu verwenden, um dies zu erreichen.
Ich denke, der Code würde ungefähr so aussehen, aber ich denke, dass ich ziemlich weit weg bin.
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);
}
});
Im Wesentlichen, ich bin zu routen etwas wollen, die /api
oder /signalr
enthält. Irgendwelche Vorschläge für den besten Weg, dies in ASPNET5 zu erreichen?
Ja, Sie können das mit einer 'Middleware' erreichen –
Möchten Sie zeigen, wie Sie dies erreichen könnten? – amcdnl
Es gibt eine Menge 'Middleware'-Samples auf' GitHub'. Eine, die ich schrieb: https://github.com/aguacongas/chatle/tree/dev/src/ChatLe.HttpUtility –