打开RouteExistingFiles时的注意事项

时间:2010-03-08 15:13:45

标签: asp.net-mvc routing asp.net-mvc-routing

我希望在我的Content文件夹中动态生成一些 CSS文件。

目前,此文件夹有一个忽略路由(routes.IgnoreRoute("Content/{*wildcard}");),我希望保留,因为我不需要/希望我的大多数内容文件夹都进入MVC请求生命周期

示例:

 routes.MapRoute(
  "DynamicCSS",
  "Content/Css/Dynamic/{guid}.css",
  new { controller = "Site", action = "GenerateCSS" },
  new { guid = @"^([0-9a-fA-F]){8}([0-9a-fA-F]){4}([0-9a-fA-F]){4}([0-9a-fA-F]){4}([0-9a-fA-F]){12}$" }
);

//If the file has already been generated, IIS should just return the file, saving a request in MVC.
routes.RouteExistingFiles = true; //was formerly false

//Ignore routes
routes.IgnoreRoute("Content/{*wildcard}");

我对此设置有几个疑问/担忧:

  • 这会有用吗? ASP.NET MVC中的路由是惰性的,但我不知道是否先检查忽略路由。在这种使用形式上没有文档(我用谷歌搜索过!)。
  • 启用RouteExistingFiles时是否需要考虑安全问题?我不希望IIS通过直接引用它来获取我的任何模型/视图文件夹。

非常感谢任何建议。

修改

经过进一步研究,我在第一期发现了article

1 个答案:

答案 0 :(得分:3)

Scott Hanselman发表了一篇博客文章“Plug-In Hybrids:ASP.NET WebForms和ASP.MVC以及ASP.NET动态数据并排”,他也谈到了他的论文。 http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

希望这有帮助,