【问题标题】:How to create a wwwroot folder in .Net Core+React project?如何在 .Net Core+React 项目中创建 wwwroot 文件夹?
【发布时间】:2020-04-23 07:47:13
【问题描述】:

我创建了一个带有 React 模板的 .Net Core WebAPI 项目。现在我想从 API 发送一封带有电子邮件模板的电子邮件。模板为 Html 格式,因此我们需要从根路径读取 Html 文件作为模板,但默认情况下,此项目中不提供“wwwroot”路径。

我在之前的 .Net Core MVC 项目中已完成此操作,如下所示,但由于没有“WWWRoot”文件夹,我不知道如何在当前项目中执行此操作。谁能帮我知道这个模板文件的存储位置以及如何在 c# 中将其作为字符串检索?

//Get the email template path
string templatePath = RuntimeConfig.SiteUrl + "/Template/EmailTemplate.html";

     //Adding the template to the email body
      using (var client = new WebClient())
      {
          string reader = client.DownloadString(templatePath);
          StringBuilder sb = new StringBuilder();
          sb.Append(reader);
          ....
          .... --logics---
      }

【问题讨论】:

    标签: c# api email asp.net-core .net-core


    【解决方案1】:

    我想从 API 发送一封带有电子邮件模板的电子邮件。

    在我看来,电子邮件模板文件不应直接提供给客户。

    要达到你的要求,你可以试试:

    创建一个文件夹来存储您的电子邮件模板文件

    在控制器操作中从该文件夹访问/读取模板文件

    public class EmailController : ControllerBase
    {
        private IWebHostEnvironment _env;
        public EmailController(IWebHostEnvironment env)
        {
            _env = env;
        }
    
        [HttpPost]
        public IActionResult SendConfirmEmail()
        {
            var path= Path.Combine(_env.ContentRootPath, @"EmailTemplates\" + "ConfirmEmailTemplate.html");
            var template = System.IO.File.ReadAllText(path);
    
            //code logic here
            //...
    
        //other actions
        //...
    

    【讨论】:

    • 我已经使用了你的代码,它在我的本地运行良好,但是当我将它部署到我的 Azure 应用服务器时,它会抛出 405 错误,无法找到资源文件路径。它尝试从我的本地而不是从服务器路径中获取。错误:{"message":"找不到路径'D:\\home\\site\\wwwroot\\Resources\\CustomFields\\UserControlFields.es.resx'的一部分。"}
    • Could not find a part of the path 'D:\\home\\site\\wwwroot\\Resources\\CustomFields\\UserControlFields.es.resx'您可以尝试使用Kudu console来检查和管理您网站的文件夹/文件。如果特定文件夹下确实不存在文件,您可以尝试创建 .resx 文件并将其复制到该文件夹​​。
    • 嗨飞,你能帮我解决这个问题吗?我尝试使用上面的代码获取文件,它给出了确切的托管服务器驱动器路径,例如“c:/projectname/wwwroot/template”,但我只想从托管服务器 URL 打开此文档,如 projectname.com/core/template。所以我可以将此 API url 提供给我的 UI 团队,他们将使用该 URL 获取视频/图像文件。例如:请参阅此“URL:github.com/konvajs/use-image”。 GitHub 是一个 Web 项目,但调用 url 会给我们一个图像。我希望和 GitHub 应用一样从服务器或源路径中获取文件。
    猜你喜欢
    • 2017-11-12
    • 1970-01-01
    • 2017-08-31
    • 2016-07-17
    • 2020-08-08
    • 2017-08-27
    • 2023-04-08
    • 2019-03-17
    • 2021-03-02
    相关资源
    最近更新 更多