Я пытаюсь использовать URL-маршрутизацию в ASP.Net для расширений файлов не aspx
Когда я начал играть с asp.net, мой код запутался и был структурирован во многих папках. Чтобы скрыть мой каталогпути и получить осмысленные URL-адреса, которые я использовал. Маршрутизация URL. Есть несколько документов по этому вопросу, для меня самое простое руководство было http://www.4guysfromrolla.com/articles/051309-1.aspx
. По умолчанию пути URL показывают мою полную структуру папок, чтобы скрыть эту информацию, я использую URLМаршрутизация После следующего кода мне разрешили использовать перенаправление с виртуальными путями
RouteTable.Routes.Add("login", new Route("login", new RouteHandler(string.Format("~/…/Login.aspx"))));
Если вы используете расширения не .aspx, такие как HTML, вам нужно добавить Buildproviders в web.config для этого расширения
Пример:
RouteTable.Routes.Add("testhtml", new Route("testhtml", new RouteHandler(string.Format("~/.../test.html"))));
Web.Config:
<system.web>
<compilation debug="true" targetFramework="4.6.1" >
<buildProviders >
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<…>
Теперь http://localhost:58119/testhtml совпадает с http://localhost:58119/.../test.html с полным путем
На мой вопрос
По умолчанию ASP.net может перенаправить на ~ /… / test.pdf или ~ /… / test.png.
с URL-адресом. Маршрутизация снова запрашивает buildproviders.для расширения файла.
Но в документации по msdn нет сборщиков по умолчанию для этих расширений, если я прав: /