แก้ไข: ตัวอย่างที่ทำซ้ำได้: https://github.com/searchingforlife/nginx-substitution
ฉันกำลังพยายามเพิ่ม/ใส่จำนวนสคริปต์ลงในไฟล์/เอาต์พุต 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>";
และไฟล์ conf nginx หลักของเรา:
สถานที่ / หนึ่ง {
sub_filter_once ปิด;
รวม /script_one.conf;
รวม /script_two.conf;
}
อย่างไรก็ตามสิ่งนี้ดูเหมือนจะใช้งานไม่ได้และ nginx จะเพิ่มสคริปต์แรกเท่านั้น หากค่าตัวกรองแตกต่างกัน (เช่น เปิดตัวกรองหนึ่งตัว </head>
และอื่น ๆ บน </body>
) จากนั้น nginx จะแทรกสคริปต์ทั้งสอง
มีวิธีแก้ไขข้อ จำกัด นี้หรือไม่และให้ nginx แทรกสคริปต์ทั้งสองหรือไม่ ฉันรู้ว่าฉันสามารถสร้างไฟล์ conf ใหม่ที่รวมทั้งสองสคริปต์เป็นหนึ่งเดียวและรวมไว้ แต่นั่นจะไม่ปรับขนาดเมื่อคุณมีสคริปต์มากกว่า 10 สคริปต์ที่จะแทรกซึ่งสามารถรวมกันได้หลายวิธีขึ้นอยู่กับตำแหน่ง