【问题标题】:ASP .Net Core 2.2 publish to AzureASP .Net Core 2.2 发布到 Azure
【发布时间】:2019-09-29 18:47:03
【问题描述】:

我是使用 Azure 的新手,但最近我已将我的 ASP.Net core 2 应用程序发布到应用程序服务,并且无法从 API 中访问电子邮件模板 (.html)。

API 工作正常,它连接到客户端和数据库,但是当我尝试发送电子邮件时 - 出现异常:

找不到路径“D:\home\site\{ProjectName}\EmailTemplate\template.html”的一部分。

在代码中我使用以下路径格式调用模板:

../{ProjectName}/EmailTemplate/template.html

如何在托管环境中访问这些模板?

非常感谢, 亚历克斯

【问题讨论】:

  • 与应用程序一起发布的文件是否为 azure?也许他们不包括在内?
  • @jpgrassi 我使用 Visual Studio 工具发布它,但很难说,因为它只是 Azure 上的一堆 .dll 文件(在 Kudo 中查看)..
  • 是的,但是 HTML 应该在那里,因为它们只是静态文件。它们是解决方案的一部分吗(我的意思是在 VS 中)
  • 右键vs中的html模板点击Properties,然后改Copy to Output Directory>Copy Always
  • 如果你控制类库项目,去那里标记要复制到输出的HTML文件。您还可以在类库的csproj 文件中应用通配模式,以便复制所有 .HTML 文件。

标签: asp.net azure asp.net-core azure-web-app-service asp.net-core-2.0


【解决方案1】:

根据 cmets。

在vs中的html模板上右键点击Properties,然后改Copy to Output Directory>Copy Always

此外,正如@jpgrassi 所指出的,您还可以在您的 csproj 文件中添加模式以包含整个目录甚至所有以 .html 结尾的文件。只需右键单击您的项目并选择Edit <Project Name>。然后添加这个:

<ItemGroup>
    <Content Include="EmailTemplate\*.html" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

【讨论】:

  • 您可能需要将其更改为 None,因为它只是一个 HTML 文件,并添加 CopyToOutputDirectory / CopyToPublishDirectory 以确保它始终被复制。您发布的代码在发布时不会输出文件。
  • 谢谢,我不知道我是怎么错过的。代码已更新。
猜你喜欢
  • 1970-01-01
  • 2019-09-21
  • 2021-07-21
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多