MVC6自托管wwwroot内容返回404,IIS Express没有

时间:2015-04-09 14:18:06

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

我正在玩ASP.NET5 / MVC6,我构建了一个小型Web应用程序。当我使用Visual Studio的IIS Express调试服务器时,一切都按预期工作。但是,当我使用" web"服务器配置文件,意味着WebListener服务器,然后只有我的MVC控制器和视图工作。但是,所有内容都存储在" wwwroot"返回404.我在那里放了CSS,JS和图像文件。

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

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

这是我的Startup课程:

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查看视图,以下是我如何引用文件的示例:

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

有什么明显的东西我完全错过了吗?

编辑:

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

1 个答案:

答案 0 :(得分:13)

我认为在"Microsoft.AspNet.StaticFiles": "1.0.0-beta3"

之前你还需要一个依赖:app.UseStaticFiles();app.UseMvc
相关问题