การเปลี่ยนเส้นทาง 301 'แคช' ของ Firefox 5


92

มีวิธีใดบ้างในการปิดใช้งาน 'คุณลักษณะนี้'?

ตัวอย่างเช่นหากมีการร้องขอhttp://localhost/foo.htmlที่ฉันได้ระบุถึง '301' ไปยังที่อยู่รูทคำขอที่ตามมาทั้งหมดเพื่อfoo.htmlข้ามเว็บเซิร์ฟเวอร์โดยสมบูรณ์และ ffox 5 จะตรวจสอบแคชของมันอ่านว่า url นี้ถูก '301' ก่อนหน้านี้และ เปลี่ยนเส้นทางโดยไม่ได้ตรวจสอบการเปลี่ยนแปลง

หากฉันหยุดfoo.htmlจาก 301'ing ฉันต้องล้างแคชของ firefox เพื่อ 'แก้ไข' สิ่งนี้ไม่ให้เกิดขึ้น

Chrome, IE และ Firefox เวอร์ชันก่อนหน้าไม่ทำเช่นนี้


แม้แต่การลบแคชก็ไม่สามารถแก้ไขข้อผิดพลาดนี้ให้ฉันได้ (Firefox 17.0.1, Linux)
Konrad Höffner

2
@kirdie ในกล่องโต้ตอบ "ล้างประวัติล่าสุด" ตรวจสอบว่าคุณตั้งค่าช่วงเวลาเป็น "ทุกอย่าง" แล้วเลือกช่องทำเครื่องหมาย "แคช" หากช่วงเวลาที่เลือกเป็นช่วงเวลาที่เร็วกว่าที่คุณเข้าชม URL ที่เปลี่ยนเส้นทางรายการแคชจะไม่ถูกล้าง
Kelvin

13
@kirdie และทุกคนที่มีปัญหาเดียวกัน: ดูประวัติด้วย Ctrl + H จากนั้นคลิกขวาที่ไซต์และเลือก "ลบประวัติทั้งหมดสำหรับไซต์นี้" (หรือสิ่งที่คล้ายกัน) ที่ทำเพื่อฉัน
Lars Nyström

4
@ LarsNyström: การพัฒนาเว็บแอปและพบกับสิ่งนี้ - คำแนะนำของคุณใช้ได้ผลกับฉัน มันคือ "ลืมไซต์นี้" ใน FF20.0
cincodenada

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

คำตอบ:


45

301 เป็นเพียงโค้ดตอบกลับปกติที่แคชได้ http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2พูดว่า:

This response is cacheable unless indicated otherwise. 

ดังนั้นหากคุณไม่ต้องการแคชเซิร์ฟเวอร์ของคุณจำเป็นต้องระบุเป็นอย่างอื่นผ่านส่วนหัวปกติที่ใช้ในการควบคุมพฤติกรรมของแคช

นอกจากนี้คุณยังสามารถล้างแคชด้วยตนเอง


7
ฉันเชื่อว่าการใช้ 302 แทนจะตรงไปตรงมากว่าซึ่งไม่สามารถแคชได้ตามค่าเริ่มต้น
Frank Farmer

22
@Boris Zbarsky: คำถาม 'ฉันจะล้างแคช' มากกว่า 'ฉันจะป้องกันการเขียนแคชไม่ให้เกิดขึ้นได้อย่างไรในตอนแรก'?
Bobby Jack

4
คำถามที่ดูเหมือนว่า "ฉันจะป้องกันตัวเองไม่ให้ล้างแคชได้อย่างไร" สำหรับฉัน!
Boris Zbarsky

17
มันห่วยเพราะคุณไม่สามารถ "shift-reload" การเปลี่ยนเส้นทางได้แม้ว่าคุณจะรู้ว่ามันผิดก็ตาม ทรัพยากรแคชที่ไม่ถูกต้องอื่น ๆ ทั้งหมดสามารถโหลดซ้ำแยกกันได้ แต่ไม่ใช่การเปลี่ยนเส้นทางที่น่ารังเกียจเหล่านี้
Sam Watkins

1
ฉันลองใช้การเปลี่ยนเส้นทาง 302 จาก IIS แต่ Firefox เวอร์ชันล่าสุด (และ Chrome และ Edge และ IE) ก็แคชสิ่งเหล่านั้นเช่นกันโดยตัดสินจากพฤติกรรมของพวกเขา ฉันพบว่าการเปิดและฆ่าหน้าต่างส่วนตัวเป็นวิธีที่ดีที่สุดในการทดสอบเว็บไซต์และหลีกเลี่ยงการทำให้แคชของเบราว์เซอร์เป็นพิษ
dsmtoday

117

ใน Firefox หากคุณมีส่วนเสริมแถบเครื่องมือ "นักพัฒนาเว็บ" คุณสามารถคลิกปิด -> ปิดการใช้งานแคช -> ตรวจสอบเวอร์ชันใหม่ของหน้าทุกครั้ง จากนั้นโหลด URL ใหม่และจะรีเฟรชแคชของคุณ คุณจึงไม่จำเป็นต้องล้างแคชทั้งหมด

จากความคิดเห็นของ cptstubing06 สิ่งต่อไปนี้สามารถช่วยล้างแคช:

  1. พิมพ์Ctrl+lเพื่อวางเคอร์เซอร์บนแถบตำแหน่ง
  2. พิมพ์about:configเพื่อเปิดการตั้งค่า
  3. ยืนยันคำเตือนใด ๆ
  4. พิมพ์browser.cacheตามด้วยEnterเพื่อกรองการตั้งค่า
  5. browser.cache.check_doc_frequencyดับเบิลคลิก
  6. เปลี่ยนค่าจากไป31
  7. OKคลิก
  8. กลับไปที่หน้า 301 ที่แคชไว้ครอบงำ
  9. รีเซ็ตความถี่กลับเป็น 3 เมื่อเสร็จสิ้น

Firefox ควรเปลี่ยนเส้นทางไปยังหน้า 301 ใหม่โดยไม่ดึงข้อมูลหน้าที่ถูกเปลี่ยนเส้นทางจากแคชอีกต่อไป


4
นี่เป็นทางออกที่ดีสำหรับฉัน - ฉันต้องการแคช 301 99% ของเวลา แต่เมื่อเป็นสีน้ำเงินฉันอาจต้องเปลี่ยนตำแหน่งของการเปลี่ยนเส้นทางและไม่ต้องการล้างแคชทั้งหมดของฉัน เพื่อความชัดเจน Firefox มาพร้อมกับWeb Developerเมนูของตัวเองภายใต้เครื่องมือซึ่งไม่ใช่ส่วนเสริม Addon หรือจะเรียกว่าWeb Developerแต่แสดงให้เห็นว่าในเมนู Tools ของคุณเป็นWeb Developer Extensionและสามารถดาวน์โหลดได้ที่นี่: addons.mozilla.org/en-us/firefox/addon/web-developer
cptstubing06

5
โปรดทราบ - ถ้าคุณต้องการ Firefox เพื่ออัปเดตแคชสำหรับ URL ที่เปลี่ยนเส้นทางของคุณคุณสามารถใช้Web Developer Extensionเพื่อควบคุมพฤติกรรมการเปลี่ยนแปลงของ Firefox ชั่วคราวเพื่อเสมอตรวจสอบรุ่นใหม่แล้วตั้งมันกลับไปที่การตั้งค่าปกติของคุณ อยู่ภายใต้ Web Develoepr Extension -> Disable -> Disable Cache -> Check For Newer Version of Page -> Check For Newer Version of Page ทุกครั้ง
cptstubing06

1
ไม่ว่าคุณจะเลือกวิธีใดขั้นตอนคือเปลี่ยนการตั้งค่านี้เพื่อตรวจสอบเวอร์ชันใหม่เสมอจากนั้นโหลด URL ของคุณที่มีการเปลี่ยนเส้นทางแคช จากนั้นจะเข้าสู่เซิร์ฟเวอร์และได้รับการตอบสนองใหม่ใด ๆ สำหรับ url นั้นและอัปเดตแคชด้วยการตอบสนองใหม่ จากนั้นคุณสามารถตั้งค่าความถี่ในการตรวจสอบแคชของคุณกลับไปเป็นค่าเดิมของคุณได้ (ค่าเริ่มต้นคือ "เมื่อเพจล้าสมัย" แต่ฉันจะใช้ "ครั้งเดียวต่อเซสชัน" เพื่อให้สถานการณ์ที่แน่นอนนี้ได้รับการจัดการโดยที่ฉันไม่ต้องมีส่วนร่วม
cptstubing06

@ cptstubing06 ขอบคุณสำหรับคำแนะนำ! ขอให้คุณส่งเป็นวิธีแก้ปัญหาเพื่อให้ฉันสามารถโหวตได้ว่าเป็นวิธีที่ดีที่สุดในการจัดการสิ่งนี้เมื่อคุณไม่ต้องการล้างแคชทั้งหมดของคุณ
Mercurybullet

FYI คุณอาจต้องปิดการใช้งานDNS over HTTPSเพื่อให้สิ่งนี้ทำงานได้ตามที่คาดไว้
user2741287

25

ฉันเพิ่งประสบปัญหานี้และสำหรับฉันมันมีสองประเด็น

ชื่อโดเมนเฉพาะนี้กำหนดเส้นทางผ่าน Cloudflare ดังนั้นฉันจึงต้องตั้งค่าเป็นโหมดการพัฒนา ฉันคิดว่า Cloudflare กำลังแคชการเปลี่ยนเส้นทาง 301 ดังนั้นจึงไม่จำเป็นต้องส่งคำขอไปยังเซิร์ฟเวอร์ ขั้นตอนนี้อาจใช้ไม่ได้กับคุณอย่างชัดเจน

จากนั้นฉันก็ล้างแคช Firefox (เวอร์ชัน 11) โดยไปที่ Tools -> Options คลิกปุ่ม Advanced ที่ด้านขวาบนเลือกแท็บ Network จากนั้นคลิก Clear Now ภายใต้หัวข้อ Cached Web Content โปรดทราบว่าแคชของฉันถูกตั้งค่าเป็น 0 แล้ว แต่ฉันยังคงต้องคลิกปุ่มล้างเดี๋ยวนี้เพื่อรับการเปลี่ยนเส้นทางเพื่อหยุดการแคช

ฉันสนใจที่จะทราบว่ามีใครสามารถยืนยันสิ่งนี้ได้อีกหรือไม่


2
+1. หมายเหตุของคุณเกี่ยวกับการล้างแคชของ Firefox ได้แก้ไขปัญหานี้ให้ฉัน (ในฐานะผู้ใช้ / ลูกค้าไม่ใช่เจ้าของเว็บไซต์) สำหรับ URL เฉพาะที่ Firefox ไม่ได้รับ 301 เมื่อได้รับการอัปเดต ขอบคุณ.
Jon Schneider

1
คุณสามารถลบการเปลี่ยนเส้นทางแคชด้วยปลั๊กอิน Firefox นี้: addons.mozilla.org/en-us/firefox/addon/cacheviewer-continued
Steve

9

ฉันพบวิธีแก้ปัญหาสำหรับสิ่งนี้ที่ใช้ได้กับ Firefox 26 หลังจากมีแคชการเปลี่ยนเส้นทางที่ล้าสมัยมานานกว่าหนึ่งเดือนและเริ่มต้นใหม่

  1. บนเมนูประวัติเลือกแสดงประวัติทั้งหมด
  2. ในการค้นหาให้พิมพ์โดเมนที่มีปัญหาการเปลี่ยนเส้นทางแคชเพื่อแสดงรายการผลลัพธ์
  3. คลิกขวาที่หนึ่งในนั้นแล้วเลือก "ลืมเกี่ยวกับไซต์นี้"

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

ตามหมายเหตุด้านข้างฉันคิดว่า Firefox ควรแคชเปลี่ยนเส้นทางเป็นเวลาอย่างน้อยสองสามวัน การแคชไว้นานกว่าหนึ่งเดือนอาจทำให้ความผิดพลาดกลายเป็นปัญหาใหญ่ได้


2
วิธีนี้ใช้ได้ผล แต่โปรดทราบว่า "ลืมเกี่ยวกับไซต์นี้" จะลืมประวัติ URL (สำหรับการเติมข้อความอัตโนมัติ) และแม้แต่รหัสผ่านที่บันทึกไว้สำหรับทั้งโดเมน อาจไม่ใช่สิ่งที่คุณต้องการ
tanius

5

การแก้ไขด่วนอย่างหนึ่งคือการใช้หน้าต่างเบราว์เซอร์ส่วนตัว


นั่นคือการแก้ไขอย่างรวดเร็วของฉันและบางครั้งการเพิ่มเครื่องหมายคำถามที่ท้าย URL ก็สามารถทำเคล็ดลับได้
johnsnails

5

เครื่องมือสำหรับนักพัฒนาที่สร้างขึ้นใน Firefox เวอร์ชันล่าสุดมีวิธีแก้ปัญหานี้ ขั้นแรกให้ปิดการแคชเมื่อบานหน้าต่าง dev เปิดอยู่:

  • ในหน้าใดก็ได้ให้กดF12เพื่อเปิดเครื่องมือสำหรับนักพัฒนา
  • ที่ด้านขวาสุดให้คลิกไอคอนรูปเฟือง "ตัวเลือกกล่องเครื่องมือ"
  • ภายใต้Advanced SettingsตรวจสอบตัวเลือกDisable Cache (when toolbox is open)

ตอนนี้เมื่อใดก็ตามที่คุณต้องการบังคับให้รีเฟรชเพจแคชให้โหลด / รีเฟรชเพจโดยเปิดกล่องเครื่องมือ F12 dev Firefox จะข้ามแคชและรับข้อมูลใหม่จากเซิร์ฟเวอร์

ฉันชอบวิธีนี้เพราะมันไม่ได้เปลี่ยนวิธีการทำงานของเบราว์เซอร์สำหรับการเรียกดูแบบ "ปกติ" ที่ไม่ใช่การแก้ปัญหาและคุณไม่ต้องเสี่ยงที่จะลืมคืนค่าการตั้งค่าส่วนกลางกลับเป็นค่าดั้งเดิม

ตรวจสอบแล้วใน Firefox 39


1
ไม่ได้ช่วยในการเปลี่ยนเส้นทางแคช
SuperDuck

3

301 หมายถึงย้ายอย่างถาวร ดังนั้นฉันเห็นว่ามันสมเหตุสมผลที่จะแคชการตอบสนอง

คุณลองตั้งค่าcache-controlและexpiresส่วนหัวแล้วหรือยัง?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9


3
บางครั้งเรากำลังพัฒนาหรือโยกย้ายเซิร์ฟเวอร์หรือติดตามข้อผิดพลาดและจำเป็นต้องปิดสิ่งนี้จริงๆเพราะมันจะเข้ามาขวางทางได้
Jason


1

301หมายถึงย้ายอย่างถาวรและสามารถเข้าถึงได้ดังนั้นฉันคิดว่านั่นเป็นพฤติกรรมที่ "ถูกต้อง" สำหรับเบราว์เซอร์ คุณควรใช้303 ดูอื่น ๆ


5
IE และ Chrome cache 303 และข้อมูลจำเพาะ HTTP กำลังมีการเปลี่ยนแปลงเพื่อให้สามารถแคชได้ ดูร่างที่tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-15 ดังนั้นวิธีเดียวที่ปลอดภัยในการป้องกันการแคชการเปลี่ยนเส้นทางคือการตั้งค่าส่วนหัวการควบคุมแคชที่ชัดเจน
Boris Zbarsky
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.