Asp. Net Core 3.1 Publi sh wwwroot Папка Шаблоны электронной почты - PullRequest
0 голосов
/ 10 января 2020

У меня есть простое приложение, использующее. net core 3.1 с очень простой формой ContactUs. Все работает нормально, кроме издательства.

Я использую Core CLI для публикации sh моего проекта с помощью следующей команды

dotnet build SampleApp.csproj /p:DeployOnBuild=true /p:PublishProfile=Local

Вот моя папка wwwroot

enter image description here

Когда я публикую sh мое приложение, за исключением папки templates в папке wwwroot, все публикуется правильно.

Вот мой файл .csproj

enter image description here

Мой вопрос: как опубликовать sh папка шаблона с использованием CLI?

Ответы [ 2 ]

1 голос
/ 13 января 2020

Это можно сделать двумя способами:

First Way --> 

изменить .cshtml на .html для html шаблонов, и это, безусловно, будет работать без каких-либо других изменений.

Second Way -->

Follow this :

1). Создайте папку emailtemplates в родительском каталоге.

2). Скопируйте все свои шаблоны электронной почты в папку emailtemplates, которая была создана в родительском каталоге. (Используйте. html вместо .cs html для шаблонов)

3). Затем используйте его в любом контроллере, как показано ниже.

Example :
    public class HomeController : ControllerBase
    {
        private readonly IHostingEnvironment _environment;

        public HomeController(IHostingEnvironment iHostingEnvironment)
        {
            _environment = iHostingEnvironment;
        }

        public string LoadTemplate()
        {
            string FilePath = _environment.ContentRootPath;
            var PathWithFolderName = Path.Combine(FilePath, "emailtemplates");

            var file = PathWithFolderName + "\\" + "contact-us.html";

            using (StreamReader r = new StreamReader(file))
            {
                string html = r.ReadToEnd();
                return html;
            }
        }
    }
0 голосов
/ 10 января 2020

В отличие от ASP. NET MVC 5, во время публикации sh в ASP. NET Core .cshtml файлы представления компилируются в файл .dll, это почему ваша папка templates , содержащая .cshtml файлы в папке wwwroot, опускается при публикации sh.

Лучше переместите EmailTemplates папка внутри Вид папка в проекте. Тогда все будет работать как положено.

...