C# 从wwwroot内的文件夹提供静态文件
我有以下ASP.NET核心项目结构:C# 从wwwroot内的文件夹提供静态文件,c#,asp.net-mvc,asp.net-core,aurelia,C#,Asp.net Mvc,Asp.net Core,Aurelia,我有以下ASP.NET核心项目结构: . ├── Controllers ├── Dockerfile ├── Models ├── Program.cs ├── Properties ├── README.md ├── Services ├── Startup.cs ├── Views ├── appsettings.json ├── bundleconfig.json ├── project.json ├── web.config └── wwwroot . ├── aurelia-app
.
├── Controllers
├── Dockerfile
├── Models
├── Program.cs
├── Properties
├── README.md
├── Services
├── Startup.cs
├── Views
├── appsettings.json
├── bundleconfig.json
├── project.json
├── web.config
└── wwwroot
.
├── aurelia-app
├── css
├── images
├── js
└── temp.html
在wwwroot
内部,我使用Aureliacli
设置了一个Aurelia项目。其结构如下:
.
├── Controllers
├── Dockerfile
├── Models
├── Program.cs
├── Properties
├── README.md
├── Services
├── Startup.cs
├── Views
├── appsettings.json
├── bundleconfig.json
├── project.json
├── web.config
└── wwwroot
.
├── aurelia-app
├── css
├── images
├── js
└── temp.html
我的aurelia应用程序
有我想要提供的index.html
文件(当我浏览到localhost:5000时,如果它在wwwroot
中,则以类似的方式)
下面是我的Startup.cs
configure()方法的样子:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseFileServer(new FileServerOptions
{
EnableDefaultFiles = true,
EnableDirectoryBrowsing = true,
});
app.UseMvc();
}
我应该更改什么,以便在加载基本url时,它在wwwroot/aurelia app
目录中查找index.html
文件?我不确定这是否有效,但您可以尝试
var options = new DefaultFilesOptions
{
RequestPath = RequestPath = new PathString("/wwwroot/aurelia-app or /aurelia-app")
};
app.UseDefaultFiles(options);
app.UseStaticFiles();
我不确定这是否有效,但你可以试试
var options = new DefaultFilesOptions
{
RequestPath = RequestPath = new PathString("/wwwroot/aurelia-app or /aurelia-app")
};
app.UseDefaultFiles(options);
app.UseStaticFiles();
这与网站的默认“索引”文件有关,而不是与提供静态文件有关。我猜你想提供wwwroot
中的所有文件,而不仅仅是wwwroot/aurelia应用程序中的文件。因此,将静态文件中间件的范围限定为wwwroot/aurelia app
是行不通的
您最好的选择可能是将默认应用程序URL设置为http://localhost:5000/aurelia-app/index.html
在您的launchSettings.json
(项目->属性->launchSettings.json)中:
您也应该在IIS网站或Azure Web应用程序中应用此设置。
例如:
这与网站的默认“索引”文件有关,而不是与提供静态文件有关。我猜你想提供wwwroot
中的所有文件,而不仅仅是wwwroot/aurelia应用程序中的文件。因此,将静态文件中间件的范围限定为wwwroot/aurelia app
是行不通的
您最好的选择可能是将默认应用程序URL设置为http://localhost:5000/aurelia-app/index.html
在您的launchSettings.json
(项目->属性->launchSettings.json)中:
您也应该在IIS网站或Azure Web应用程序中应用此设置。
例如:
是的,我尝试过使用PhysicalFileProvider
解决方案,但出现了错误PhysicalFileProvider未找到
,如何添加该错误?我使用的是VSCode,因此不确定如何在没有nuget
的情况下添加外部依赖项。使用Microsoft.Extensions.FileProviders添加;谢谢,这就解决了这个问题。这听起来很愚蠢,但是我在路径
、目录
、和路径字符串
对象上也遇到了错误。我应该添加什么来解决这个问题?我对aspnet core比较陌生。是的,我尝试过使用PhysicalFileProvider
解决方案,但我发现错误PhysicalFileProvider not found
,如何添加该错误?我使用的是VSCode,因此不确定如何在没有nuget
的情况下添加外部依赖项。使用Microsoft.Extensions.FileProviders添加;谢谢,这就解决了这个问题。这听起来很愚蠢,但是我在路径
、目录
、和路径字符串
对象上也遇到了错误。我应该添加什么来解决这个问题?我对aspnet core比较陌生。有道理。是的,我想为wwwroot
中的所有文件提供服务。谢谢因此,我在我的launchSettings.json
中添加了上面的一行,并且还更改了launchUrl
,看起来像这样。不过,当我浏览到localhost:5000
时,我得到了以下信息:有意义。是的,我想为wwwroot
中的所有文件提供服务。谢谢因此,我在我的launchSettings.json
中添加了上面的一行,并且还更改了launchUrl
,看起来像这样。然而,当我浏览到localhost:5000
时,我得到了以下信息: