Я получаю следующую ошибку при тестировании отката к локальному файлу с помощью помощника по тегам скрипта ядра ASP.NET:
Не удалось найти действительный дайджест в атрибуте «целостности»для ресурса 'http://localhost:48888/js/jquery.min.js' с вычисленной целостностью SHA-256' oozPintQUive6gzYPN7KIhwY / B + d8 + 5rPTxI1ZkgaFU = '.Ресурс заблокирован.
Локальный файл - это текст, равный версии CDN, но не двоичный.Это становится проблемой, поскольку хэш целостности сравнивается не только с основным источником, но и с резервным источником, и не проходит проверку, поскольку он генерирует другой хэш.
Вот пример:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"
asp-fallback-src="~/js/jquery.min.js"
asp-fallback-test="window.jQuery"
crossorigin="anonymous"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">
</script>
Это прекрасно работает, если браузер может получить доступ к CDN Google.Но если вы измените источник на неверное значение, например, ищите несуществующую версию, такую как «3.9.9», которая вызывает откат к локальному файлу.Этот локальный файл не удастся загрузить, потому что они не равны двоично (разные хэши).
В идеале проверка целостности не должна применяться к локальным файлам, поскольку мы доверяем локальному файлу под нашим контролем.Альтернатива состоит в том, что мы можем определить другой хеш для локального запасного варианта.
Доступен ли какой-либо из этих вариантов?Если нет, есть ли другой обходной путь?Я стараюсь избегать ручного копирования из CDN, чтобы они соответствовали друг другу, из-за дополнительной работы по обслуживанию, необходимой для будущих обновлений.Я хотел бы использовать менеджер пакетов.