Редактировать: Воспроизводимый пример: https://github.com/searchingforlife/nginx-замена
Я пытаюсь добавить/ввести произвольное количество скриптов в файл/выход HTML. Все они фильтруют по одному и тому же значению </body>
вводить себе.
Версия nginx: nginx/1.16.1
Представьте, что у нас есть два файла conf (упрощенно):
# script_one.conf
sub_filter "</body>" "<script src='/one.js'></script></body>";
# script_two.conf
sub_filter "</body>" "<script src='/two.js'></script></body>";
И наш основной файл конфигурации nginx:
местоположение / один {
sub_filter_once выключен;
включить /script_one.conf;
включить /script_two.conf;
}
Однако это не работает, и nginx добавляет только первый скрипт. Если значение фильтра отличается (скажем, один фильтр на </head>
а другой на </body>
), то nginx внедряет оба скрипта.
Есть ли способ обойти это ограничение и заставить nginx внедрять оба скрипта? Я знаю, что могу создать новый файл конфигурации, который объединяет оба сценария в один, и включить его, но он просто не масштабируется, когда у вас есть более 10 сценариев для внедрения, которые можно комбинировать различными способами в зависимости от местоположения.