我正在.net-core API中设置电子邮件发件人。我想在我的项目中将电子邮件模板另存为html文件。我目前将它们保存在以下路径中
project-api / Templates / email-template1.html
project-api / Templates / email-template2.html
...
project-api / Templates / email-templateX.html
我想要的是阅读所需模板的内容。
到目前为止,我所做的是使用System.IO.File.ReadAllText,如下所示。
System.IO.File.ReadAllText(@“ Templates / email-template1.html”);
如果我在计算机上进行开发,则能够读取内容文件,因为当前文件夹存在。但是,如果我发布代码,则该文件夹将不存在,并会导致以下错误。
找不到路径的一部分 '/var/www/Templates/email-template.html'
读取模板文件的最佳做法是什么?
答案 0 :(得分:1)
我将模板放置为 EmbeddedRessource ,如下所示:
在代码中,我读取了嵌入式资源,如:
var assembly = typeof(<GETYOURASSEMBLY>).GetTypeInfo().Assembly;
var stream = assembly.GetManifestResourceStream("<RESSOURCENAME>.EmailTemplates.NewApprovalRequest.html");
var reader = new StreamReader(stream);
var template = reader.ReadToEnd();
答案 1 :(得分:0)
您的静态内容必须在wwwroot文件夹中,并在statup.cs中设置此配置。
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
}