Editați | ×: Exemplu reproductibil: https://github.com/searchingforlife/nginx-substitution
Încerc să adaug/injectez un număr arbitrar de scripturi într-un fișier/ieșire HTML. Toate filtrează pe aceeași valoare </body>
să se injecteze singuri.
Versiunea nginx: nginx/1.16.1
Imaginați-vă că avem două fișiere de configurare așa (simplificate):
# script_one.conf
sub_filter "</body>" "<script src='/one.js'></script></body>";
# script_two.conf
sub_filter "</body>" "<script src='/two.js'></script></body>";
Și fișierul nostru principal de configurare nginx:
locație /un {
sub_filtru_o dată dezactivat;
include /script_one.conf;
include /script_two.conf;
}
Totuși, acest lucru nu pare să funcționeze și nginx adaugă doar primul script. Dacă valoarea filtrului este diferită (să zicem că se filtrează </head>
iar celălalt pe </body>
), apoi nginx injectează ambele scripturi.
Există o modalitate de a ocoli această limitare și de a face ca nginx să injecteze ambele scripturi? Știu că pot crea un nou fișier de conf care combină ambele scripturi într-unul singur și să le includă, dar care pur și simplu nu se scalează atunci când aveți peste 10 scripturi de injectat care pot fi combinate în diferite moduri, în funcție de locație.