MVC6 自托管 wwwroot 内容 returns 404,IIS Express 没有
MVC6 Self-Hosted wwwroot content returns 404, IIS Express doesn't
我正在玩 ASP.NET5/MVC6 并构建了一个小型 Web 应用程序。当我使用 Visual Studio 的 IIS Express 调试服务器时,一切都按预期工作。但是当我使用 "web" 服务器配置文件时,即 WebListener 服务器,则只有我的 MVC 控制器和视图起作用。但是,所有存储在 "wwwroot" returns 下的都是 404。我放在那里的是 CSS、JS 和图像文件。
我一切换回 IIS Express,内容就被正确提取了。
那里有完整的源代码:https://github.com/acastaner/acastaner.fr-mvc6
这是我的创业公司class:
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")
,但效果是一样的。
我认为您还需要一个依赖项:"Microsoft.AspNet.StaticFiles": "1.0.0-beta3"
和 app.UseStaticFiles();
在 app.UseMvc
之前
我正在玩 ASP.NET5/MVC6 并构建了一个小型 Web 应用程序。当我使用 Visual Studio 的 IIS Express 调试服务器时,一切都按预期工作。但是当我使用 "web" 服务器配置文件时,即 WebListener 服务器,则只有我的 MVC 控制器和视图起作用。但是,所有存储在 "wwwroot" returns 下的都是 404。我放在那里的是 CSS、JS 和图像文件。
我一切换回 IIS Express,内容就被正确提取了。
那里有完整的源代码:https://github.com/acastaner/acastaner.fr-mvc6
这是我的创业公司class:
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")
,但效果是一样的。
我认为您还需要一个依赖项:"Microsoft.AspNet.StaticFiles": "1.0.0-beta3"
和 app.UseStaticFiles();
在 app.UseMvc