ข้ามไปยังเนื้อหา

ปิดปรับปรุง

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

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

TomeCMS สร้างหน้านี้เองโดยไม่ผ่านธีม ถ้าธีมพังเพราะงานที่กำลังทำอยู่ หน้าปิดปรับปรุงก็จะไม่พังตามไปด้วย หน้านี้มีแท็ก noindex และสถานะ 503 ก็บอกเครื่องมือค้นหาว่าเว็บปิดแค่ชั่วคราว

หน้านี้แสดงหัวข้อและรายละเอียด ซึ่งคุณเขียนแยกได้ทีละภาษา ถ้าเว้นว่าง หัวข้อจะเป็น “ปิดปรับปรุงชั่วคราว” ในภาษาไทย และ “Down for maintenance” ในภาษาอังกฤษ พร้อมข้อความสั้น ๆ ว่าจะกลับมาเร็ว ๆ นี้ ในหน้าแอดมิน ข้อความตั้งต้นเหล่านี้จะขึ้นเป็นสีเทาในช่องที่ว่างอยู่ หัวข้อยาวได้ไม่เกิน 80 ตัวอักษร และรายละเอียดไม่เกิน 280 ตัวอักษร

/sitemap.xml และ /rss.xml ก็ตอบ 503 เช่นกัน เป็นข้อความธรรมดาว่า The site is closed for maintenance.

แบบ สิ่งที่หน้าแสดง
“เรียบง่าย” หัวข้อ รายละเอียด และชื่อเว็บ
“โลโก้” โลโก้ของเว็บอยู่เหนือข้อความ ถ้าเว็บไม่มีโลโก้จะแสดงชื่อเว็บแทน
“ภาพ” ภาพจากคลังไฟล์เป็นฉากหลังของข้อความ แบบนี้ต้องเลือกภาพ
“นับถอยหลัง” นาฬิกานับถอยหลังเป็นวัน ชั่วโมง นาที และวินาที จนถึงเวลาที่กลับมา แบบนี้ต้องตั้งเวลากลับมา

สำหรับแบบ “ภาพ” หน้าแอดมินจะเตือนถ้าภาพใหญ่กว่า 800 KB ซึ่งทำให้ผู้เข้าชมต้องรอ และถ้าภาพกว้างไม่ถึง 1,600 พิกเซล ซึ่งจะดูไม่คมบนจอกว้าง ระหว่างที่หน้าปิดปรับปรุงใช้ภาพไหนอยู่ “คลังไฟล์” จะไม่ยอมลบภาพนั้น และบอกว่า “หน้าปิดปรับปรุง” ใช้ภาพนี้อยู่

ในส่วน “กลับมาประมาณ” ช่อง “วันและเวลา” ใช้ตั้งเวลาที่คาดว่าจะเปิดเว็บอีกครั้ง จะตั้งหรือไม่ก็ได้ ยกเว้นแบบ “นับถอยหลัง” ที่ต้องตั้ง เวลาที่กรอกเป็นเวลาของเครื่องที่ใช้อยู่ ส่วนหน้าปิดปรับปรุงจะแสดงตามเขตเวลาของเว็บ เป็น “กลับมาประมาณ” ตามด้วยวันและเวลา

ระหว่างที่ยังไม่ถึงเวลานั้น ทุกคำตอบ 503 จากเว็บที่ปิดอยู่จะมี header Retry-After บอกเวลานั้นไว้ เครื่องมือค้นหาจึงรู้ว่าควรกลับมาเมื่อไร เมื่อเลยเวลาไปแล้ว หน้าจะเปลี่ยนเป็น “กลับมาในอีกไม่ช้า” และจะไม่ส่ง Retry-After อีก

เว็บไซต์ไม่เปิดกลับเองเมื่อถึงเวลา เวลาที่กลับมามีไว้บอกผู้เข้าชมเท่านั้น เว็บจะปิดอยู่อย่างนั้นจนกว่าคุณจะสลับกลับเอง

  1. เปิดเมนู “ตั้งค่า” แล้วเลือก “ปิดปรับปรุง”
  2. เลือกแบบ เขียนข้อความในแท็บของแต่ละภาษา แล้วเลือกรูปและตั้งเวลากลับมาถ้าต้องการ จากนั้นกด “บันทึก” หน้าปิดปรับปรุงบันทึกแยกจากสวิตช์ การบันทึกจึงยังไม่ปิดเว็บ
  3. “ดูตัวอย่าง” จะเปิดหน้าที่บันทึกไว้ในแท็บใหม่ โดยแสดงฉบับที่บันทึกล่าสุด ไม่รวมการแก้ไขที่ยังไม่บันทึก
  4. ในส่วน “สถานะ” เปิดสวิตช์ “ปิดเว็บเพื่อปรับปรุง” หน้าแอดมินจะถามว่า “ปิดเว็บไม่ให้ผู้เข้าชมเข้า?” กด “ปิดเว็บ” แล้วผู้เข้าชมจะเห็นหน้าปิดปรับปรุงทันที

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

เมื่อจะเปิดเว็บ ให้ปิดสวิตช์เดิม หน้าแอดมินจะไม่ถามอะไร และขึ้นว่า “เปิดเว็บไซต์แล้ว เว็บไซต์กลับมาเปิดตามปกติ”

ที่ปิดมีแค่หน้าเว็บที่ผู้อ่านเปิด ฟีดทั้งสองตัว และ content API ที่เหลือตอบตามปกติทั้งหมด

  • หน้าแอดมินที่ path ที่คุณเลือก และการเข้าสู่ระบบ รวมถึง /recovery
  • /health/live และ /health/ready
  • /media/<id> และไฟล์ใน bucket รูปบนหน้าปิดปรับปรุงจึงยังโหลดได้
  • /robots.txt
  • /api/v1/stats/hit
  • /api/v1/content/openapi.json และ draft preview

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

ในหน้าแอดมิน ทุกหน้ายกเว้น “ปิดปรับปรุง” จะขึ้นประกาศ “เว็บปิดปรับปรุงอยู่” ตามด้วย “ผู้เข้าชมจะเห็นหน้าปิดปรับปรุงจนกว่าคุณจะปิดโหมดนี้” และปุ่ม “ตั้งค่าปิดปรับปรุง”

ระหว่างที่ปิดเว็บ route ใต้ /api/v1/content/ ก็ตอบ 503 เช่นกัน คำตอบมีหัวข้อ รายละเอียด และเวลาที่กลับมาที่คุณตั้งไว้ อยู่ในฟิลด์ maintenance เป็นภาษาที่ request ขอ หรือภาษาเริ่มต้นของเว็บถ้าไม่ได้ขอ เว็บแบบ headless จึงสร้างหน้าปิดปรับปรุงของตัวเองได้ คำตอบนี้มี header Retry-After แบบเดียวกันระหว่างที่ยังไม่ถึงเวลากลับมา หน้าใช้งาน Headless API แสดงคำตอบฉบับเต็ม

ในโหมด headless หน้าเว็บสาธารณะของ TomeCMS ตอบ 404 อยู่แล้ว 503 จาก API จึงเป็นสัญญาณเดียวที่บอกเว็บของคุณว่ากำลังปิดปรับปรุง หน้าโหมด bundled และ headless อธิบายทั้งสองโหมดไว้