我已经部署了一个ASP.NET Web API,并在同一个文件夹上使用了一个网站。
当我在浏览器上输入网址时,例如http://domain.com/,它会返回404,但如果我输入http://domain.com/index.html,则会有效!
我想知道是否有办法在Web API路由上配置它,为它定义默认路由,当我输入http://domain.com/index.html时重定向到我的http://domain.com/
我已经尝试过把它放在Web上.Config没有成功:
<defaultDocument enabled="true">
<files>
<add value="/index.html" />
</files>
</defaultDocument>
另外,我将我的IIS设置为仅接受index.html默认文档。没有成功= /
有什么想法吗?
答案 0 :(得分:1)
我不确定这是否是达到此目的的最佳方式,我只是编辑了我的RouteConfig.cs:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "index.html"
);
}
}
现在我可以让http://domain.com完美无缺!
我很高兴如果有人有最好的方法来实现这一点!
答案 1 :(得分:1)
嗯,这是情境化的,因为你正在做的事情很好。
我做过类似的事情:
routes.IgnoreRoute("");
当web api的默认mvc部分被击中时,我通常仍会遇到问题,所以对我来说,我最终会这样做
public ActionResult Index()
{
string filePath = Server.MapPath("~/contact.html");
if (System.IO.File.Exists(filePath))
{
return File(filePath, "text/html");
}
return View();
}