Приложение Angular / .net mvc, размещенное на Azure, не загружает svg-s после обновления Angular 7 - PullRequest
0 голосов
/ 16 ноября 2018

Я весь день бился головой об этом.

У меня есть гибридное приложение, asv.net mvc на бэкэнде и угловое на фронтэнде. Мы использовали index.cshtml для загрузки приложения angular, но после обновления до angular 7 оно больше не загружает определенные файлы svg, когда оно находится в рабочем режиме.

Очевидно, после обновления до angular 7, когда он собирает комплект для производства, он выплевывает файлы svg, на которые есть ссылки в scss, как это background-image: url('../../../../../assets/icons/A08_16_info.svg'), прямо в папку dist: enter image description here

Забавно то, что svg, на которые ссылаются непосредственно в шаблоне со встроенным стилем, работают нормально, а изображения остаются в папке ресурсов. Это похоже на оптимизацию некоторых веб-пакетов.

Вот как я ссылаюсь на угловые файлы внутри asp.net mvc index.cshtml:

IEnumerable<string> fileEntries = Enumerable.Empty<string>();
List<string> bundles = new List<string>();

fileEntries = Directory.EnumerateFiles(Server.MapPath("~/Scripts/dist"));

bundles.Add("runtime.");
bundles.Add("polyfills");
bundles.Add("styles.");
bundles.Add("scripts.");
bundles.Add("main.");
bundles.Add("*.svg");
}

@foreach (string bundleName in bundles)
{
    foreach (string fileName in fileEntries)
    {
        FileInfo fileInformation = new FileInfo(fileName);
        if (fileInformation.Name.Contains(bundleName))
        {
            if (fileInformation.Name.Contains("styles"))
            {
                <link href="~/Scripts/dist/@fileInformation.Name" rel="stylesheet" />
            }
            else if (fileInformation.Name.Contains(".js"))
            {
                <script src="~/Scripts/dist/@fileInformation.Name"></script>
            }
        }
    }
}

А это консоль браузера:

enter image description here

Это похоже на проблему IIS. Я попытался добавить следующее правило в файл web.config, но ничего не происходит:

<staticContent>
      <remove fileExtension=".svg" />
      <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
  </staticContent>

Если кто-нибудь столкнется с этой проблемой после обновления до angular 7, я был бы очень признателен за решение этой проблемы.

С уважением!

...