我主要是ASP.NET Core的新手。我创建了一个Web API模板并设置了一个控制器,然后在wwwroot
下手动创建了以下目录结构:
wwwroot/
css/
site.css
js/
site.js
index.html
当我点击F5时,我想在浏览器中启动index.html
。但是,我无法弄清楚如何做到这一点。这是我的launchSettings.json
:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:63123/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "index.html",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
当我运行" IIS Express"在Chrome中命令,我得到"找不到网址的网页:http://localhost:63123/index.html"。为什么会这样?
我的应用的完整来源可在此处找到:https://github.com/jamesqo/Decaf/tree/webapp-2/Decaf.WebApp。
答案 0 :(得分:2)
我下载了您的代码,并将您的launchsettings文件更改为完全限定的网址:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseMvc();
}
我还修改了你的StartUp.cs添加(app.UseStaticFiles();),它现在似乎有效:
absolute = absolute + (walk**2)**(1/2.0)
运行结果:
答案 1 :(得分:1)
您需要将.UseContentRoot添加到Program.cs文件的BuildWebHost方法中,如下所示:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseContentRoot(Directory.GetCurrentDirectory())
.Build();
然后,通过将.UseStaticFiles()添加到Startup类中的Configure方法,将程序配置为使用静态文件。您还需要配置MVC中间件以侦听和处理传入请求。您可以在app.UseMvc()中看到我在哪里配置路由。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
最后,导航到http://localhost:63123/index.html,您应该很高兴。