pbz*_*pbz 6 asp.net-mvc asp.net-mvc-5 asp.net-core-mvc asp.net-core
我正在使用Angular在ASP.NET Core网站(以前称为ASP.NET 5/vNext)上工作.为了让Angular工作,我需要一个全能的路线:
app.UseStaticFiles();
app.UseMvc(routes =>
{
// Angular fallback route
routes.MapRoute("angular", "{*url}", new { controller = "Home", action = "Index" });
});
Run Code Online (Sandbox Code Playgroud)
我在wwwroot中也有一些文件/文件夹,如:
wwwroot/app
wwwroot/assets
wwwroot/lib
Run Code Online (Sandbox Code Playgroud)
例如http://example.com/assets/css/test.css,当对这些路径发出任何请求且文件(test.css)不存在时,它不应继续到回退路由.它应该返回404.
现在,如果文件不存在,则返回Angular HTML.那么,我怎么能告诉它任何以'/ assets'开头的路径应该只被路由/服务UseStaticFiles?
谢谢.
这似乎有效:
app.MapWhen(context =>
{
var path = context.Request.Path.Value;
return path.StartsWith("/assets", StringComparison.OrdinalIgnoreCase) ||
path.StartsWith("/lib", StringComparison.OrdinalIgnoreCase) ||
path.StartsWith("/app", StringComparison.OrdinalIgnoreCase);
}, config => config.UseStaticFiles());
Run Code Online (Sandbox Code Playgroud)
但是,我不确定是否存在任何性能(或其他类型)影响.如果我遇到任何问题,我会更新.
| 归档时间: |
|
| 查看次数: |
5971 次 |
| 最近记录: |