Как использовать опцию asp-fallback как в Angular 6 - PullRequest
0 голосов
/ 12 ноября 2018

Я разрабатываю приложение, которое будет использоваться как в автономном, так и в онлайн-серверах.Поэтому я хочу иметь возможность, чтобы онлайн-серверы использовали необходимые файлы css / js из CDN, а автономные серверы - из локального.

Sample asp-fallback-href.В приведенном ниже коде я понял, что он будет работать так, как я ожидал.

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css"
              asp-fallback-href="~/vendor/fortawesome/fontawesome-free/css/all.css"
              asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
              integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ"
              crossorigin="anonymous">

Я использую Angular 6, Как мне этого добиться?

1 Ответ

0 голосов
/ 12 ноября 2018

Все свойства asp-fallback* добавляют дополнительный JavaScript для динамической загрузки резервного src / href в случае сбоя теста.Другими словами:

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" />
<script>
    (function () {
        var testElement = document.createElement('span');
        testElement.className = 'sr-only';
        if (testElement.style.position !== 'absolute') {
            var head = document.getElementsByTagName('head')[0];
            var link = document.createElement('link');
            link.href = '/vendor/fortawesome/fontawesome-free/css/all.css';
            link.rel = 'stylesheet';
            head.appendChild(link);
        }
    })();
</script>

Вы можете использовать атрибуты data-*, чтобы имитировать одно и то же встроенное определение резервного href и обязательных тестов, и просто соответствующим образом изменить код, чтобы использовать их вместо жестко заданных значений, чтобы обобщить сценарий.Вам также, вероятно, будет лучше обслуживаться, если просто использовать динамическую библиотеку загрузки, которая часто имеет возможность запускать такие встроенные условные выражения (такие как fallback.io )

...