【问题标题】:Access shared view folder in a .net core application running on an azure server访问在 azure 服务器上运行的 .net 核心应用程序中的共享视图文件夹
【发布时间】:2021-02-12 23:00:11
【问题描述】:

在本地运行我的站点时,我正在访问共享视图文件夹中的文件,如下所示:

string[] files = Directory.GetFiles("Views/Shared");

因为我通过 API 调用动态获取页面内容,并且某些字段具有部分视图,用于覆盖默认呈现。我只是在 api 调用中获取与某些内容匹配的共享视图名称,将其设置在一个变量中,然后使用该变量在 .cshtml 页面中呈现部分视图。

这在本地运行良好,但在部署到 Azure 后失败,但一些谷歌搜索告诉我,我应该访问项目文件的方法是使用 IWebHostEnvironment.ContentRootPath。同样,这在本地工作正常;但在部署到 Azure 后,文件夹结构发生变化,因此 /views/shared 文件夹(或除 wwwroot 之外的任何项目文件夹)不存在。我认为 azure 只是在构建项目,因为有一个 views.dll 文件;但现在我不知道如何将这些文件名设置为模型中的变量。

有没有办法在部署后迭代我的 /views/shared 文件夹?

【问题讨论】:

标签: c# azure asp.net-core


【解决方案1】:

部署到 Azure 后,文件夹结构发生变化,因此 /views/shared 文件夹(或除 wwwroot 之外的任何项目文件夹)不存在。我认为 azure 只是在构建项目,因为有一个 views.dll 文件;但现在我不知道如何将这些文件名设置为模型中的变量。

您可以尝试将 CopyRazorGenerateFilesToPublishDirectory 属性设置为 true,这有助于将 RazorGenerate 项目 (.cshtml) 文件复制到发布目录。

<PropertyGroup>

  <!--other properties here-->

  <CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory>
  
  <!--other properties here-->

</PropertyGroup>

更多信息,请查看以下文档:

https://docs.microsoft.com/en-us/aspnet/core/razor-pages/sdk?view=aspnetcore-5.0#properties

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2017-09-01
    • 2017-12-14
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2012-10-22
    相关资源
    最近更新 更多