Score:1

RewriteRule พร้อมตั้งค่าสถานะ [L] หยุดการแคชหรือไม่

ธง cn

ฉันใช้ซอฟต์แวร์การจัดการเซิร์ฟเวอร์ plesk กับ apache และ nginx ฉันตั้งค่าใน apache และ nginx เป็นส่วนหัวที่หมดอายุสำหรับไฟล์จาวาสคริปต์เป็นเวลาหนึ่งปี ที่ทำงานฉันสามารถเห็นหนึ่งปีสำหรับ "หมดอายุ" ในส่วนหัว

ตอนนี้ฉันต้องการเข้าถึงไฟล์ javascript และ php ด้วยการเขียนใหม่ (โดยไม่ต้องเปลี่ยนเส้นทาง)

อาปาเช่

หมดอายุเปิดใช้งานเมื่อ
ExpiresByType ข้อความ/จาวาสคริปต์ A31556952

RewriteEngine เปิดอยู่
RewriteRule ปลอม/(.+\.(?:js|php))$ ต้นฉบับ/$1 [L]

NGINX

ตำแหน่ง ~* ^/(.*\.js)$ {
    try_files $uri @ฟอลแบ็ค;

    หมดอายุ 1 ปี;
    add_header แคชควบคุม "สาธารณะ";
}

RewriteRule นั้นทำงานอยู่ ฉันสามารถเข้าถึงไฟล์นี้ได้ แต่ส่วนหัว "หมดอายุ" ใน "fake/file.js" หายไป ผมทำอะไรผิดหรือเปล่า?

example.com/original/file.js = หมดอายุในหนึ่งปี

example.com/fake/file.js = ไม่มีส่วนหัวสำหรับการหมดอายุ

สารละลาย ไฟล์สแตติกทั้งหมดจะถูกประมวลผลโดย NGINX ไม่ใช่ apache ดังนั้นตั้งค่าใน apache บรรทัดนี้สำหรับ javascript ให้แคช

ส่วนหัวตั้งค่าการควบคุมแคช "max-age=31556952, สาธารณะ"

ค่าสถานะ [L] ใน RewriteRule จะต้องหยุดการประมวลผลไฟล์แบบสแตติกโดย nginx และ ExpiresByType จะถูกละเว้น

kz flag
คุณตั้งค่าส่วนหัว 'หมดอายุ' อย่างไร คุณใช้คำสั่งเหล่านี้ที่ไหน คุณมีคำแนะนำอะไรอีกบ้าง? "ใน apache ** และ ** nginx" - Nginx เข้ากับสิ่งนี้ได้อย่างไร (นอกเหนือ: เบราว์เซอร์สมัยใหม่ทั้งหมดใช้ส่วนหัว 'Cache-Control' + 'max-age' เหนือส่วนหัว 'Expires')
cn flag
ขอบคุณ ฉันได้แก้ไขคำถามของฉันแล้ว การควบคุมแคชใช้งานได้ แต่ทำไมไม่ ExpiresByType และเหตุใดไฟล์สแตติกจึงไม่ประมวลผลโดย nginx เลย
Score:1
ธง kz

เหตุใดไฟล์สแตติกจึงไม่ประมวลผลโดย nginx เลย

เพราะ /fake/file.js ไม่ใช่ "ไฟล์คงที่" อีกต่อไป (ไม่มีอยู่จริง) ดังนั้นจะถูกส่งผ่านไปยัง Apache ซึ่งจะถูกเขียนใหม่ภายในเพื่อรับการตอบสนองที่จำเป็น

ExpiresByType ข้อความ/จาวาสคริปต์ A31556952

ข้อความ/จาวาสคริปต์ อาจไม่ใช่ประเภท mime ที่ "ถูกต้อง" สำหรับการตอบสนอง JavaScript เซิร์ฟเวอร์ของคุณ. คุณต้องยืนยันว่ามีมประเภทใด (เช่น ชนิดของเนื้อหา ส่วนหัว) เซิร์ฟเวอร์ของคุณกำลังส่งกลับพร้อมการตอบกลับเหล่านี้ แต่โดยปกติจะเป็น แอปพลิเคชัน/จาวาสคริปต์ แทนในทุกวันนี้ กล่าวอีกนัยหนึ่ง:

แอปพลิเคชัน ExpiresByType/จาวาสคริปต์ A31556952

เพื่อชี้แจง mod_expires ExpiresByType ตั้งค่าทั้ง หมดอายุ และ การควบคุมแคช: อายุสูงสุด ส่วนหัวการตอบสนอง HTTP การควบคุมแคช: อายุสูงสุด ให้ความสำคัญกับเบราว์เซอร์สมัยใหม่ทั้งหมด หมดอายุ มีไว้สำหรับการสนับสนุนดั้งเดิมเท่านั้น

ค่าสถานะ [L] ใน RewriteRule จะต้องหยุดการประมวลผลไฟล์แบบสแตติกโดย nginx

เดอะ แอล แฟล็กจะหยุดการผ่านปัจจุบันของเอ็นจิ้นการเขียนซ้ำบน Apache คำสั่งเหล่านี้ไม่ส่งผลต่อ Nginx (ซึ่งดูเหมือนจะทำหน้าที่เป็นพร็อกซีส่วนหน้า)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา