Tôi đang nâng cấp dự án của mình lên ASPNET5. Ứng dụng của tôi là Ứng dụng web AngularJS sử dụng Định tuyến Url HTML5 (HTML5 History API).Lịch sử HTML5 5 HTML5
Trong ứng dụng trước đây của tôi tôi đã sử dụng URL Rewrite IIS Mô-đun với các mã như:
<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>
Tôi nhận ra tôi có thể cổng này nhưng tôi muốn thu nhỏ cửa sổ phụ thuộc của tôi. Từ đọc của tôi, tôi nghĩ rằng tôi sẽ có thể sử dụng ASP.NET 5 Middleware để thực hiện việc này.
Tôi nghĩ mã sẽ trông giống như thế này nhưng tôi nghĩ tôi khá xa.
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);
}
});
Về cơ bản, tôi muốn định tuyến mọi thứ có chứa /api
hoặc /signalr
. Bất kỳ đề xuất về cách tốt nhất để thực hiện điều này trong ASPNET5?
Có, bạn có thể đạt được điều đó với một 'middleware' –
Chăm sóc để cho biết cách bạn có thể thực hiện việc này? – amcdnl
có rất nhiều mẫu 'middleware' trên' GitHub'. Tôi đã viết: https://github.com/aguacongas/chatle/tree/dev/src/ChatLe.HttpUtility –