【问题标题】:Why does ASP.NET-MVC does not serve static html from subfolder?为什么 ASP.NET-MVC 不提供子文件夹中的静态 html?
【发布时间】:2015-06-03 02:48:20
【问题描述】:

我有一个无法解释的有趣问题。 我有一个 ASP.NET-MVC 应用程序,唯一的原因是有一个 hhtp 端点来在服务器上发布一些东西。所有其他内容都是纯静态内容。

我的结构简化了:

Root/
    index.htm
    img/
        image.png
        test.html

在根目录中,我的 index.html 服务很好。如果我指向 www.mysite.com/img/image.png 图像将按原样显示。 如果我指向 www.mysite.com/img/test.html 我会收到 500 错误。 为什么 html 不是从子文件夹提供,而图像是?

编辑 - 更新

网址 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 返回动作的单个动作之外,其他一切都是具有静态内容的简单静态网站。

还有我的控制器:

public class ApiController : Controller
{

    [HttpPost]
    public JsonResult PostSomeData(SomeData someData)
    {
            // save to database
            return Json(true);
    }
}

【问题讨论】:

  • 如何从控制器调用视图?可以发一下代码吗?
  • 没有意见。只需一个简单的操作即可将 sometginh 写入 db 并返回 json。这是静态内容,应该与控制器无关。
  • 您使用的是什么服务器(Casini\IIS Express\IIS)以及什么版本?如果是 IIS,您使用的是经典管道还是集成管道?路由设置?
  • 您可能至少需要安装 ELMAH,以便获取异常日志。您还可以从安装 Glimpse 并逐步执行请求中受益。在这一点上,其他任何事情都是纯粹的猜想。
  • 服务器是 IIS 8.0。我使用集成管道。事情在主机上,所以我的选择有限。路由设置非常简单。我会在上面做广告。但如果我没有出错,则不应为静态内容调用 asp.net-mvc 路由。

标签: asp.net asp.net-mvc


【解决方案1】:

如果不发布用于从控制器呈现视图的代码,则很难说出问题的确切原因。但我猜这是路由问题或没有正确调用 html 文件。

为了服务您的其他test.html,您可以试试这个:

public ActionResult Index()
{

    var staticPageToRender = new FilePathResult("~/img/test.html", "text/html");
    return staticPageToRender;
}

【讨论】:

  • 没有控制器在起作用。静态页面,静态内容。
  • 您可能需要查看服务器日志以了解“HTTP 500 内部服务器”的实际错误消息。此错误消息可能意味着任何事情,包括不正确的虚拟目录权限、错误的路径、未正确安装组件等等。
猜你喜欢
  • 2021-05-26
  • 1970-01-01
  • 2015-09-14
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多