如果我有一个充满静态内容的文件夹,请说" / Content1 / CSS",但我希望将它作为" / Content2 / CSS"提供给客户端。有没有办法以程序方式执行此操作,其中路由注册通常发生在ASP.NET MVC应用程序中?
据我所知,我可以使用MapRoute将URL映射到区域,控制器和操作,我知道我可以使用MapPageRoute将URL映射到单个静态文件。但是,我正在寻找一种方法来同时映射整个文件夹,而不必重新映射每个静态文件,以便我可以例如在新虚拟路径的物理路径下提供所有静态内容。
答案 0 :(得分:2)
默认情况下,任何具有文件扩展名的URL都将完全绕过MVC路由基础结构,并由IIS直接提供。虽然你可以禁用它,但它不仅是一种痛苦,而且还会减慢你的应用程序。 MVC必须做的工作只是为了服务路由,而让IIS直接服务静态文件会绕过这一切。
如果要将请求从一个位置重定向到另一个位置,那么这就是IIS中URL重写模块的作业。只需创建从k
到k
的永久重定向,即可完成。