在MVC管道之外提供静态文件

时间:2015-04-13 20:04:48

标签: asp.net asp.net-mvc angularjs iis asp.net-web-api

我试图在客户端使用AngularJS构建单个页面应用程序,在后端使用Web API构建asp.net。我一直在使用Grunt使用复杂的客户端构建管道。简而言之,这个工具为我提供了一个dist文件夹,其中包含了我的所有脚本/样式等,并且缩小了,简化了所有这些内容。

此时,在URL路由和视图呈现方面,我不需要服务器端MVC管道。我已将dist包放在siteroot/Content/dist。最终,我的目标是静态地为位于那里的文件提供服务,并使应用程序的其余部分保持不变。但是,我发现无法做到这一点。我被迫导航到mysite.com/content/dist以便真正查看我的申请。我发现了虚拟应用程序和目录,并尝试将应用程序重新映射到/site\wwwroot\Content\dist。这具有预期的效果,因为现在导航到我的站点的根目录提供了我正在寻找的HTML文件,但它同时似乎打破了我的所有Web API端点,因为它看起来应用程序已经用完了完全不同的道路。

有没有办法可以让两全其美?我希望我的API端点能够像现在一样存在,但只是静态地为我的网站提供\Content\dist

1 个答案:

答案 0 :(得分:1)

您可以使用StaticFiles中间件并将dist文件夹设置为root。我有一个example如何在控制台应用程序中设置它,但在现有的Web应用程序中你需要的只是在中间件中配置一个Startup类。