我正在将我的WebAPI迁移到.Net Core,该项目包含剃刀文件(.cshtml),该文件将在运行时在调用方法时编译并返回HTML文件。
在迁移之前,所有文件都可以使用,之后,我只能访问"wwwroot"
下的文件,但不包括.cshtml之类的文件类型,这些类型在部署到Azure时始终隐藏。
它在我的机器上运行良好,问题是何时实时部署。
我尝试添加和删除app.UseStaticFiles().
我正在使用Razorlight访问剃刀模板,它抛出一个错误,指出该文件不存在。
答案 0 :(得分:2)
app.UseStaticFiles()
仅服务于Web根目录(wwwroot)。如果需要从Web根目录外部提供静态文件,则需要设置StaticFileOptions
,如下所示。
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles(); // For the wwwroot folder
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles")),
RequestPath = "/StaticFiles"
});
}
然后您可以从MyStaticFiles
目录提供文件,例如:
http://<server_address>/StaticFiles/MyViews/test.png
提供test.png文件
请参阅-Static Files
如评论中所述,通过导航到'MyStaticFiles'
并检查您的项目层次结构,确保存在<your-web-app-name>.scm.azurewebsites.net
(与您的情况不同)。