W3 Total Cache, CDN และไฟล์ธีม [ปิด]


10

ฉันอัพเดตไฟล์ style.css ของการติดตั้ง WordPress ของฉันเมื่อเร็ว ๆ นี้ การเปลี่ยนแปลงมีผล: เมื่อลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบ (บล็อกของฉันได้รับการตั้งค่าเพื่อให้ผู้ดูแลระบบไม่ได้ให้บริการเว็บไซต์ในเวอร์ชันแคช แต่เป็นรุ่น "สด") ฉันสามารถเห็นพวกเขาได้

แต่บล็อกของฉันถูกแสดงผ่าน CDN (โดยใช้ W3 Total Cache) ผ่าน CDN การเปลี่ยนแปลงจะไม่มีผล: CDN ไม่ได้ให้บริการไฟล์ที่แก้ไขจากธีมของฉัน แม้ว่าฉันจะอัปโหลดหลังจากการแก้ไข (แดชบอร์ด> ประสิทธิภาพ> CDN> อัปโหลดไฟล์ธีม

CDN ของฉันทำงานที่ AmazonCloud Front และ Minify จะถูกปิดใช้งานใน W3 Total Cache

ไฟล์ชุดรูปแบบที่ให้บริการผ่าน CDN ของฉันเป็นรุ่นบีบอัด: style.css.gzip

ฉันควร "กำจัด" วัตถุจาก CDN ของฉันหรือรออีกเล็กน้อย (มันมากกว่าหนึ่งสัปดาห์) และใช่ฉันล้างแคชของเบราว์เซอร์ที่ใช้เพื่อดูว่าการเปลี่ยนแปลงมีผล หรือมีอย่างอื่นที่ฉันหายไป?

ขอบคุณ

พี

คำตอบ:


10

คุณจำเป็นต้อง

  1. กำหนดเวอร์ชันไฟล์ของคุณ (โดยเรียกมัน style.css?ver=xxx.xxx) และตรวจสอบให้แน่ใจว่าการแจกจ่าย CloudFront ของคุณเปิดใช้งาน นี่เป็นตัวเลือกที่ดีกว่าเพราะมันหมายความว่าสิ่งที่คุณต้องทำคือการเพิ่มจำนวนในสตริงการสืบค้นและ CloudFront จะดึงไฟล์นี้โดยอัตโนมัติ

  2. ทำให้ไฟล์ของคุณไม่ถูกต้องด้วยตนเองผ่านทางคอนโซล AWS (มีแท็บทำให้ใช้งานไม่ได้เมื่อคุณแก้ไขการแจกจ่าย)

หากต้องการเปิด 'Forward Query Strings' ให้ทำดังนี้:

  • แก้ไข Cloudfront distro ของคุณโดยทำเครื่องหมายที่ช่องทำเครื่องหมายด้านซ้ายของ 'i' จากนั้นคลิกที่ปุ่ม "การตั้งค่าการกระจาย" ในแถบเครื่องมือ
  • ไปที่แท็บพฤติกรรม
  • เลือกบรรทัดและคลิกที่ 'แก้ไข'
  • เปลี่ยน "สตริงการค้นหาไปข้างหน้า" เป็นใช่
  • คลิกที่ "ใช่แก้ไข"

1
@kaiser yup วันที่และเวลาเป็นเวอร์ชันเป็นวิธีที่ดีที่สุดในการกำหนดเวอร์ชันไฟล์ อย่างไรก็ตามคุณยังต้องตรวจสอบให้แน่ใจว่าตัวเลือก "Forward Query Strings" เปิดอยู่ใน CloudFront ไม่เช่นนั้นหมายเลขรุ่นที่คุณสร้างขึ้นมาจะถูกละเว้น: P
anu

ขอบคุณ. ฉันมีคำถามสองข้อสำหรับคุณเนื่องจากฉันไม่คุ้นเคยกับขั้นตอนนี้ 1) ชื่อของไฟล์“ versioned” ควรเป็นไปตามตัวอย่างที่คุณให้ไว้ (ด้วยเครื่องหมายคำถามเครื่องหมายเท่ากับและแทนที่“ x” ทั้งหมดด้วยหมายเลขที่ฉันเลือก) ใช่ไหม? 2) บนคอนโซล AWS ของฉันสำหรับ CLoudFront ฉันคลิกใน“ ฉัน” ที่ด้านซ้ายของตารางข้างการกระจายที่ฉันสร้างขึ้นสำหรับบล็อกของฉัน สิ่งนี้ทำให้ฉันสามารถเข้าถึงการตั้งค่าการกระจาย ที่นั่นฉันสามารถเห็น "สตริงการค้นหาไปข้างหน้า" เป็น "เท็จ" ฉันควรทำซ้ำ "พฤติกรรม" นี้ด้วยค่าเดียวกัน แต่ด้วย "จริง" สำหรับ "For. Q. strings"
Parneix

1
1. ใช่หรือคุณสามารถใช้ @ kaiser ความหมายดี แต่คำตอบที่ไม่สมบูรณ์เพื่อตั้งชื่อไฟล์ของคุณ 2. ฉันจะปรับปรุงคำตอบกับกระบวนการ
anu

8

มี "เคล็ดลับ" ที่ค่อนข้างง่ายในการป้องกันการแคชเมื่อเนื้อหาไฟล์เปลี่ยนแปลง: เพิ่มหมายเลขรุ่นที่ตั้งค่าเป็นวันที่ / เวลาล่าสุดที่คุณเปลี่ยนไฟล์

add_action( 'wp_enqueue_scripts', 'wpse61738_non_cached_stylesheet' );
function wpse61738_non_cached_stylesheet()
{
    wp_enqueue_style( 
        'style-main',
        get_stylesheet_directory_uri().'/style.css',
        array(),
        filemtime( get_stylesheet_directory().'/style.css' )
    );
}

สิ่งนี้จะผนวก?ver=0123456789เข้ากับลิงก์อ้างอิง style.css ของคุณในส่วนหัวของคุณ หมายเลขเวอร์ชั่นจะเปลี่ยนแปลงเมื่อเนื้อหาของไฟล์ได้รับการแก้ไข ดังนั้นคุณจึงมีโซลูชันที่ทำงานได้สมบูรณ์แบบด้วย a) แคชของเซิร์ฟเวอร์ b) เบราว์เซอร์แคชและรีเฟรชอัตโนมัติ


ตกลงนั่นเป็นตัวเลือกที่น่าสนใจจริง ๆ : มันไม่จำเป็นต้องทำการปรับรุ่นstyle.cssไฟล์ของฉันด้วยตนเองหลังจากการแก้ไขแต่ละครั้ง (ซึ่งฉันจะลืมที่จะทำที่จุดหนึ่งหรืออีกอัน) ทีนี้ถ้าฉันถามฉันจะเพิ่มรหัสนี้ได้ที่ไหน ฉันจะเดาfunctions.phpไฟล์ของฉัน?
Parneix

ฉันไม่รู้คุณต้องเพิ่มรหัสนี้ที่ไหน เพียงค้นหาไฟล์ธีมของคุณและแทนที่การเรียก "ปกติ" เป็นไฟล์ style.css ฉันจะโพสต์การอัปเดตสั้น ๆ เพื่อให้คุณสามารถวางไว้ในไฟล์ functions.php ของคุณ (นี่ยังหมายความว่าคุณต้องลบการโทรเดิม) และ btw: นี่เป็นส่วนเพิ่มเติมของ @anu answer เท่านั้น (ผู้โหวตยังคงชื่นชม :)
kaiser

1
ไม่มีปัญหา! ฉันเข้าใจอย่างถ่องแท้ว่าที่ตั้งของรหัสนี้มีแนวโน้มที่จะเปลี่ยนไปตามรูปแบบที่ใช้ ฉันจะจัดการเพื่อเพิ่มลงในfunctions.phpไฟล์ของฉัน ฉันยังคิดว่ามันเป็นส่วนเสริมที่ดีในการแก้ปัญหาของ @anu ขอบคุณมากสำหรับความช่วยเหลือ.
Parneix

-1

คำตอบสั้น ๆ ...

  1. ลบไฟล์ชุดรูปแบบทั้งหมดของคุณและอัปโหลดอีกครั้ง บางครั้งการกระทำที่ลบจะล้าง CDN

  2. ใช่คุณสามารถลองล้างข้อมูลได้ แต่โดยทั่วไปแล้วการลบและอัปโหลดใหม่จะเร็วกว่า

  3. ตรวจสอบการตั้งค่าใน W3TC และใน Amazon แคชเริ่มต้นสำหรับใน W3TC มักจะ 365 วัน ซึ่งคือ 31536000 วินาที :)

ในอเมซอน .. จะมีการตั้งค่าสำหรับจุดสิ้นสุดเพื่อสอบถาม CDN อีกครั้ง ฉันรู้ว่าใน Rackspace ค่าเริ่มต้นคือ 24 ชั่วโมง


1
มีวิธีการที่ดีมากในการทำมันกว่านี้ให้ดูคำตอบของฉัน
anu

“ ลบไฟล์ธีมทั้งหมดของคุณและอัปโหลดใหม่ บางครั้งการกระทำการลบจะล้าง CDN” คุณต้องการให้ฉันลบออกในเว็บไซต์ของฉันใช่ไหม จากนั้นอัปโหลดอีกครั้งในการติดตั้ง WordPress ของฉัน และฉันเดาว่า "อัปโหลดไฟล์ชุดรูปแบบ" อีกครั้งผ่านแดชบอร์ด W3 Total Cache หรือไม่
Parneix

1
@Parneix อย่างจริงจังอย่าลบทุกอย่างเว้นแต่คุณจะต้อง มันแทบจะไม่ทำงานจนกว่าคุณจะลบทุกอย่างออกจาก CDN เช่นกัน มีวิธีการที่ดีมากของต้นเหตุ CSS ไฟล์เก่าของคุณ
anu

1
ใช่ขอบคุณ! ฉันจดบันทึกข้อเสนอแนะของคุณ ฉันขอขอบคุณทุกความช่วยเหลือที่ฉันได้รับที่นี่ ไม่เพียง แต่ฉันจะแก้ไขปัญหาของฉัน แต่ฉันได้เรียนรู้สิ่งใหม่ ๆ เช่นกัน
Parneix
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.