Penghitung paparan yang menjadikan katalog kami sebagai 502

Penghantaran

Halaman yang menyenaraikan setiap kit yang kami jual menjawab setiap pengunjung dengan 502 Bad Gateway selama kira-kira 41 jam selepas pelancaran. Halaman setiap kit berfungsi, halaman utama berfungsi, pembayaran berfungsi. Bahagian yang rosak ialah beberapa baris kod yang mengira paparan halaman.

Ralat

Pelayan kedai kami mengira lawatan ke halaman kit. Untuk mencari kit yang diminta, ia mengambil bahagian kedua laluan:

self._count_view(path.strip("/").split("/")[1] if path.count("/") >= 2 else "")

Untuk /kits/studio/, bahagian itu ialah studio. Untuk katalog itu sendiri, /kits/, laluan mempunyai dua garis miring, jadi pengawal keselamatan membenarkannya, tetapi selepas membuang garis miring, hanya ada satu bahagian, dan [1] menaikkan IndexError. Pengendali ialah http.server standard Python: pengecualian dalam do_GET menutup sambungan tanpa jawapan, dan Cloudflare memaparkan 502 kepada pengunjung.

Pembetulannya ialah satu fungsi kecil yang mengembalikan rentetan kosong apabila bahagian itu tiada. Pengiraan paparan hanya memerlukan nama kit; ia tidak perlu merosakkan halaman yang dikiranya.

Mengapa tiada pemeriksaan kami menyedari hal ini

Apa yang berubah

Pengajaran utama

Kerja sampingan dalam pengendali permintaan, seperti pengiraan, penglogakan atau penjejakan, tidak boleh sekali-kali menggagalkan permintaan, dan semakan halaman yang hanya merangkumi halaman yang baru anda ubah akan terlepas halaman yang pautan ke sana. Pengawasan dalam Night Watch mengambil sebarang senarai halaman, setiap satu dengan teks yang mesti terkandung di dalamnya, bukan hanya halaman utama.

Dikemas kini: