Asp-fallback и (настраиваемые) зависимые сценарии

Я использую Asp.Net Core 2.2 и хотел бы загружать общие библиотеки js из cdn и использовать локальные ресурсы в ситуациях интрасети, когда cdn недоступен.

Сам резервный вариант работает, но у меня есть пользовательские сценарии, которые используют jquery и терпят неудачу при сбое ресурса cdn, хотя jquery загружается из локального источника. Это теги сценария, которые я использовал:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
  asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
  asp-fallback-test="window.jQuery"
  crossorigin="anonymous"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">
</script>

<script src="~/js/myScript.js" asp-append-version="true"></script>

Мой скрипт не работает с ReferenceError: $ is not defined. Я предполагаю, что это связано с тем, что резервный ресурс загружается позже, чем мой скрипт, потому что ввод $ в командной строке дает function().

Дополнительная информация: я также получаю ошибки в журнале js о том, что хэш целостности неверен. Меня это не смущает (пока), так как резервные библиотеки работают.

Также требуется очень много времени, прежде чем страница обнаружит, что cdn недоступен, и загрузит локальный запасной вариант (почти 2 минуты). Чтобы заблокировать cdn, я добавил временную запись в свой локальный файл dns (хосты в окнах).

Что мне нужно сделать, чтобы мои собственные сценарии работали с откатом?


person BluE    schedule 15.05.2019    source источник


Ответы (1)


Последнее, что я проверял, действительно не было известного решения для этого. введите здесь описание изображения

Что касается неправильного хэша целостности, это, возможно, связано с тем, что файлы не равны в двоичном виде. Вы можете обойти эту проверку целостности, если хотите, установив для asp-suppress-fallback-integrity значение true.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
  asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
  asp-fallback-test="window.jQuery"
  crossorigin="anonymous"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  asp-suppress-fallback-integrity="true">
</script>
person LewisAntonio803    schedule 09.07.2019
comment
Спасибо за публикацию. Я добавил asp-suppress-fallback-integrity=true с момента создания этого вопроса. Основная проблема все еще там. Я не могу использовать cdn, потому что вся страница выйдет из строя, если cdn недоступен. - person BluE; 09.07.2019
comment
Я рассмотрю другие способы решения этой проблемы. Без asp-tag-helper должен быть способ решения требования использования cdn и возврата к локальным ресурсам. - person BluE; 09.07.2019