ฉันใช้ซอฟต์แวร์การจัดการเซิร์ฟเวอร์ 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 จะถูกละเว้น