Я управляю статическим веб-сайтом с помощью инструмента поиска, который использует структуру терминов таксономии в качестве источника данных для поиска ссылок, соответствующих некоторым критериям, которые затем будут загружаться асинхронно и анализироваться для создания пользовательского интерфейса.
СтруктураТермины таксономии примерно такие:
<ul>
<li data-term="TaxonomyTermOfFirstLevel">TaxonomyTermOfFirstLevel
<ul>
<li data-term="TaxonomyTermOfSecondLevel">TaxonomyTermOfSecondLevel
<ul>
<li data-term="TaxonomyTerm">
<a href="https://www.example.com/some-page/">Some Page</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
И (фрагмент) процедуры загрузки:
var cache = {};
function load( url ) {
if( ! cache[ url ] ) {
cache[ url ] = $.ajax( url );
}
return cache[ url ];
}
С выводом HTML без минимизации все работает нормально.Но при минимизации с помощью экстремальных инструментов, которые также удаляют кавычки вокруг атрибутов, все запросы, сделанные на URL-адреса, найденные в структуре выше, завершаются с ошибкой:
Смешанное содержимое: страница в 'https://www.example.com/search/' был загружен через HTTPS, но запросил небезопасную конечную точку XMLHttpRequest 'http://www.example.com/some-page/'. Этот запрос был заблокирован;контент должен обслуживаться по протоколу HTTPS.
Как видите, и Requester (/search
), и Requested (/some-page
) находятся в одном домене, но браузер сообщает, что запрашиваемый URL-адреснебезопасно, потому что это не под SSL.Но если вы посмотрите на предоставленный мною фрагмент, у Запрошенного URL действительно есть префикс схемы https
.
Я исчерпывающе искал об этом безуспешно и только когда деактивировал выводминимизация все вернулось в рабочее состояние.Затем я проанализировал все, что связано с процессом поиска, от HTML до каждого из файлов JS, отвечающих за поиск (в конце концов, это статический сайт), и я заметил только два отличия:
- (очевидное)отсутствие кавычек вокруг атрибутов
href
. - Тот факт, что URL-адреса указывают на папки в корневом каталоге, каждая из которых имеет файл
index.html
(т.е. /same-page/index.html
), вызывая перенаправление для псевдосодружественная-гиперссылка.Но, насколько я понимаю, это не было бы проблемой, поскольку jQuery прозрачно следовал бы за перенаправлением, верно?
Альтернатива, которая у меня была бы в этом случае, будет использовать другой минификатор, который не удаляетвместо кавычек tdewolff , встроенный выбор Hugo Static Site Generator, используемый для создания всех HTML-файлов.
Будет ли что-то еще, что мне не хватает?