我有一个有趣的问题,我无法解释。 我有一个ASP.NET-MVC应用程序,唯一的理由是让一个hhtp端点在服务器上发布一些东西。所有其他东西都是纯静态内容。
我的结构简化了:
Root/
index.htm
img/
image.png
test.html
在root中,我的index.html whis很好。如果我指向www.mysite.com/img/image.png,图像就会显示出来。 如果我指向www.mysite.com/img/test.html,我会收到500错误。 为什么html不是从子文件夹提供的,而是图像是?
编辑 - 更新
Url www.mysite.com显示index.html。 网址www.mysite.com/index.html导致500错误。
我无法向自己解释这一点。 ASP.NET MVC应用程序不提供html文件吗?www.mysite.com命中index.html因为(我猜)这是IIS设置中的默认设置吗?
根据这一观察,这个问题可以改为: 为什么img / image-png服务但img / test.html没有?
编辑更新2
根据热门请求,我发布了我的路线配置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "ApiPostData",
url: "api/{action}",
defaults: new { controller = "Api" }
);
}
除了使用JSON rezult返回操作的单个操作之外,所有elese都是具有静态内容的简单静态网站。
我的控制员:
public class ApiController : Controller
{
[HttpPost]
public JsonResult PostSomeData(SomeData someData)
{
// save to database
return Json(true);
}
}
答案 0 :(得分:1)
如果没有发布用于从控制器渲染视图的代码,则很难确定问题到底是什么。但我猜这是一个路由问题或者没有正确调用html文件。
为了服务您的其他test.html
,您可以尝试:
public ActionResult Index()
{
var staticPageToRender = new FilePathResult("~/img/test.html", "text/html");
return staticPageToRender;
}