asp.net-mvc - MVC6 自托管 wwwroot 内容返回 404,IIS Express 不会

标签 asp.net-mvc owin asp.net-core asp.net-core-mvc

我正在使用 ASP.NET5/MVC6,并构建了一个小型 Web 应用程序。当我使用 Visual Studio 的 IIS Express 调试服务器时,一切都按预期工作。但是,当我使用“web”服务器配置文件(即 WebListener 服务器)时,只有我的 MVC Controller 和 View 可以工作。然而,存储在“wwwroot”下的所有内容都会返回 404。我放在那里的是 CSS、JS 和图像文件。

一旦我切换回 IIS Express,内容就会正确获取。

完整的源代码可以在这里找到:https://github.com/acastaner/acastaner.fr-mvc6

这是我的启动类:

public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller}/{action}/{id?}",
                    defaults: new { controller = "Home", action = "Index" });
            });
        }
    }

这是我的project.json 文件:

{
    "webroot": "wwwroot",
    "version": "1.0.0-*",
    "dependencies": {
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
        "Microsoft.AspNet.Diagnostics": "1.0.0-beta3",
        "Microsoft.AspNet.Mvc": "6.0.0-beta3",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta3"
    },
    "frameworks": {
        "aspnet50": { },
        "aspnetcore50": { }
    },
    "bundleExclude": [
        "node_modules",
        "bower_components",
        "**.kproj",
        "**.user",
        "**.vspscc"
    ],
    "exclude": [
        "wwwroot",
        "node_modules",
        "bower_components"
    ],
    "commands": {
        "web ": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
    }
}

我使用 Razor 来获取 View ,以下是我如何引用文件的示例:

<link href="~/css/bootstrap.min.css" rel="stylesheet" type="text/css">

有什么明显的事情我完全错过了吗?

编辑:

我确实尝试使用@Url.Content("~/css/bootstrap.min.css")但效果是一样的。

最佳答案

我认为您还需要一个依赖项:"Microsoft.AspNet.StaticFiles": "1.0.0-beta3"app.UseStaticFiles();之前app.UseMvc

关于asp.net-mvc - MVC6 自托管 wwwroot 内容返回 404,IIS Express 不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29541090/

相关文章:

asp.net - Owin:主机名(或IP)和端口

asp.net-core - 在.Net core中共享默认的OWIN token

asp.net-core - 将 .NET Core 应用升级到 1.1 时出错

c# - Entity Framework 尝试添加数据库中已有表的迁移

jquery - 如何使用asp.net mvc5实现ajax登录?

c# - ApplicationPath vs "~",哪个更好找应用程序路径?

c# - 总是收到 "Authorization has been denied for this request."消息

css - 如何将媒体属性添加到 ASP.NET MVC4 样式包

c# - 在 Controller 之外使用 LinkGenerator

razor - 使用 Identity UI 作为库在 ASP.NET Core 2.1 中授权注册页面