ASP.NET 5 HTML5历史
发布时间:2020-05-24 11:04:46 所属栏目:asp.Net 来源:互联网
导读:我正在将我的项目升级到ASPNET5.我的应用程序是使用 HTML5 URL路由( HTML5 History API)的AngularJS Web App. 在我以前的应用程序中,我使用URL重写IIS模块,代码如下: system.webServer rewrite rules rule name=MainRule stopProcessing=tr
|
我正在将我的项目升级到ASPNET5.我的应用程序是使用 HTML5 URL路由( HTML5 History API)的AngularJS Web App. 在我以前的应用程序中,我使用URL重写IIS模块,代码如下: <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>
我意识到我可以移植它,但我想最小化我的Windows依赖项.从我的阅读中我认为我应该能够使用ASP.NET 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的任何内容.有关在ASPNET5中实现此目的的最佳方法的任何建议吗? 解决方法你是在正确的轨道上,但我们只想重写请求上的路径,而不是发回重定向.以下代码从ASP.NET5 RC1开始运行.app.UseIISPlatformHandler();
// This stuff should be routed to angular
var angularRoutes = new[] {"/new","/detail"};
app.Use(async (context,next) =>
{
// If the request matches one of those paths,change it.
// This needs to happen before UseDefaultFiles.
if (context.Request.Path.HasValue &&
null !=
angularRoutes.FirstOrDefault(
(ar) => context.Request.Path.Value.StartsWith(ar,StringComparison.OrdinalIgnoreCase)))
{
context.Request.Path = new PathString("/");
}
await next();
});
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseMvc();
这里的一个问题是你必须专门将角度路由编码到中间件(或将它们放在配置文件中等). 最初,我尝试创建一个管道,在调用UseDefaultFiles()和UseStaticFiles()之后,它会检查路径,如果路径不是/ api,则重写它并将其发回(因为除了/ api之外的其他内容应该已经处理过了).但是,我永远无法让它发挥作用. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在ASP.net中使用image404和azurereader2
- asp.net – 是否有一个简单的方法来呈现具有Microsoft Web
- 嵌套的ASP.NET’应用程序’在IIS内继承父配置值?
- 在asp.net应用程序中使用Quartz.Net
- asp.net-mvc-3 – 在MVC 3的AuthorizeAttribute中获取模型数
- asp.net-mvc – 如何在ASP.NET MVC4中使用具有唯一标识符UR
- asp.net-mvc – 具有区域的Url.Action()返回空字符串
- asp.net-mvc-4 – 如何开发一个ASP.NET Web API接受一个复杂
- asp.net – MVC Controller返回Chunked内容编码
- asp.net – SignalR在.NET客户端和服务器之间的安全连接
推荐文章
站长推荐
- asp.net – 如何获得大型LinkedIn图像共享格式
- 在为ASP.net构建期间缩小内联JavaScript?
- asp.net – MVC-Mini-Profiler – Web窗体 – 找
- asp.net-mvc-4 – ASP.NET MVC:脚本捆绑何时决定
- asp.net-mvc – ASP.NET MVC和Unity 1.2容器问题
- asp.net – 实体框架删除子对象
- AspNet Core在内存中使用,用于在IIS中运行时进行
- asp-classic – VBScript条件短路解决方法
- asp.net – JS,图像和CSS被HTTPModule拦截
- ASP.NET自定义错误页面HTTP响应
热点阅读
