Bagaimana saya bisa membuat Chrome menghentikan pengalihan caching?

416

Saya sedang mengerjakan aplikasi web yang menggunakan redirects(untuk URL cantik).

Saya mencoba men-debug logika dengan cara pengalihan bekerja. Namun Google Chrome terus mengingat pengalihan dan bahkan setelah saya mengubah kode, mengarahkan dengan cara yang sama.

Ini membuatnya sangat sulit untuk memecahkan masalah.

Misalnya, jika saya mengalihkan /thiske /that, maka ubah kode saya untuk TIDAK mengarahkan /thislagi. Google Chrome masih dialihkan ke /that. Seperti redirect di-cache atau sesuatu. Apakah ada cara untuk mematikan ini?

JD Isaacks
sumber
Apakah ini masih terjadi ketika Anda me-restart? Itu harus berhenti setelah Anda memulai kembali dengan sesi baru
acak
1
@random, memulai ulang chrome sepertinya memperbaikinya. Namun, saya biasanya memiliki banyak jendela yang terbuka (yaitu: docs, koneksi db, tutorial, halaman yang sedang saya kerjakan, dll.) Jika saya memecahkan masalah sesuatu, perlu beberapa kali mencoba sebelum mencari tahu apa yang terjadi. Saya tidak akan menganggap itu ideal untuk harus terus menutup semua jendela saya. Terima kasih.
JD Isaacks
2
Penanganan masalah: Gunakan pengalihan 302 (sementara) saat pengujian, dan beralih ke 301 (permanen) setelah Anda selesai. (Peringatan: Beberapa browser (Firefox) akan menyimpan bahkan 302 pengalihan ketika mereka beralih dari versi http ke https halaman yang sama.)
TRiG
1
Memasuki www.mywebsite/?someparam=somevaluekarya baru untuk saya
Mustafa
1
@JDIsaacks Anda bisa menggunakan Chrome secara eksklusif untuk debugging (yaitu Chrome Canary)
athosbr99

Jawaban:

329

Google Chrome akan melakukan cache 301 redirect Anda . Untuk menyiasatinya, dan untuk menjaga tab tetap terbuka, Anda hanya perlu menghapus cache browser Anda.

Menu Chrome Menu Chrome> Pengaturan> Tampilkan pengaturan lanjutan ...> Privasi> Klik Hapus data penjelajahan ...

Apa pun yang Anda pilih, pastikan "Gambar dan file dalam tembolok" adalah opsi yang dicentang.

Kemudian klik Hapus data penjelajahan dan Anda harus dapat menguji ulang lagi.

Jika Anda baru saja mengikuti arahan ulang, Anda hanya perlu menghapus data dari jam terakhir.

Atau, uji dan kembangkan dalam mode penyamaran. Di sana cache memerah setelah browser ditutup.

acak
sumber
3
Versi terbaru chrome, opsi ini adalah "Gambar dan file dalam cache" bukan "Kosongkan cache"
Dan R
23
Saya terus diarahkan, bahkan dalam mode penyamaran.
Gaia
2
@ Gaia ya, itu tampaknya menjadi masalah dalam penyamaran Chrome. Jika Anda hanya menguji, Anda mungkin ingin menggunakan Firefox untuk ini. Penjelajahan pribadi Firefox berfungsi dengan baik :)
chhantyal
10
Perhatikan bahwa HTTP 301 Dipindahkan Secara Permanen sehingga caching respons diperbolehkan dengan sempurna. Jika Anda tidak ingin respons di-cache, coba 302 atau 307. en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
a CVn
7
Pintasan keyboard untuk ini adalah Ctrl+ Shift+ Delete.
0xcaff
151

Ini adalah cara yang pasti untuk menghapus memori lengket Chrome untuk pengalihan tanpa menghapus semua data penelusuran Anda (metode yang digunakan oleh jawaban teratas saat ini):

  1. Buka panel Alat Pengembang ( optioncommandidi Mac, atau ctrlshiftidi Windows)

  2. Klik dan tahan ikon muat ulang masukkan deskripsi gambar di sini

  3. Menu akan terbuka

    masukkan deskripsi gambar di sini

  4. Pilih opsi ke-3 dari menu ini ("Empty Cache dan Hard Reload")

Berikut adalah penjelasan yang bagus tentang bagaimana 3 opsi ini berbeda .

PS: Untuk menghindari keharusan melakukan langkah-langkah ini setiap kali pengalihan diikuti oleh Chrome: centang nonaktifkan cache di DevTools, dan saat DevTools terbuka Chrome akan mem-bypass cache pengalihan (per jawaban ini )

Gaia
sumber
1
Sebagai tambahan: ini tidak tersedia di Mac.
Arjan
5
ini tidak selalu menghapus pengalihan dalam cache
Claudiu Creanga
7
Ini tersedia di Mac, tetapi menu hanya tersedia jika Anda memiliki alat dev terbuka. Saya menganggap ini mungkin sama pada Windows.
Percy
1
@Arjan tersedia di Mac, lihat superuser.com/questions/304589/…
Gaia
4
Mac OS X, Yosemite. Bertarung dengan http ke https redirect permanen, hanya opsi ini yang berfungsi. Yang lainnya, termasuk "Nonaktifkan cache (ketika DevTools terbuka)", tidak membuat perbedaan.
Carles Sala
115

Ini bukan solusi yang sempurna, tapi saya bisa mencegah Chrome menggunakan redirect yang di-cache dengan melewati string kueri palsu, atau menambahkan parameter palsu ke string kueri yang ada. Misalnya, menambahkan sederhana ?ke bagian akhir URL yang tidak memiliki string kueri berfungsi untuk saya di Chrome 30 di Max OS X.

sradack
sumber
10
Yap, ini berhasil. example.commenjadi example.com?. Saya yang termudah dari kelompok itu
fregante
2
Ini adalah trik yang luar biasa. Saya berasumsi Anda dapat menggunakan ini tanpa batas ?abc, ?abc2dll ...
brentonstrine
2
Ini tidak berhasil untuk saya. Bahkan menggunakan port yang berbeda (: 8080) itu berubah menjadi https yang tampaknya seperti bug Chrome.
jwadsack
Saya sudah melakukan hal yang sama, tetapi tidak selalu berhasil, kadang-kadang saya perlu menekan ctrl + shift + r (ctrl + f5) untuk mendapatkan versi halaman web yang lebih baru, atau sebagian halaman yang termasuk di dalam halaman
M98
Jika ada wildcard yang di-cache 301 ini mungkin tidak berfungsi karena "mengingat" untuk meneruskan semuanya setelah TLD.
dhaupin
92

Ada bug Chromium "tidak diperbaiki" tentang ini ,

Itulah perilaku yang diharapkan.

Perhatikan bahwa:

  1. Anda dapat menambahkan header kontrol cache ke 301 dan kami akan mengikutinya (kedaluwarsa dll)
  2. Jika sumber daya yang dimaksud adalah sub-sumber daya, memuat ulang laman akan menyebabkan pengalihan divalidasi kembali dengan server.
  3. Anda tidak harus kehilangan seluruh cache Anda. Cukup ikuti arahan ulang dan hapus satu jam terakhir.
dbr
sumber
Apa artinya "hapus jam terakhir." cara? Bagaimana cara melakukannya?
Mikaël Mayer
1
@ MikaëlMayer Ketika Anda mengklik "Riwayat> Hapus data penjelajahan", Anda dapat memilih jangka waktu untuk menghapus data ("jam yang lalu", "seminggu yang lalu" dll)
dbr
Tidak..! Menghapus data penelusuran untuk suatu situs tidak akan menghapus perilaku pengalihan 301. Tidak dalam Chromium 64.0.x pula
patricktokeeffe
Menghapus "1 jam" membuat Anda keluar dari semua produk dan akun Google. Saran yang bagus ...
Luciano Fantuzzi
> Anda tidak perlu kehilangan seluruh cache Anda. Cukup ikuti arahan ulang dan hapus satu jam terakhir. Itu masih lebih buruk daripada "hapus pengalihan terakhir" yang merupakan fitur yang tidak diperbaiki.
rox0r
66

Jika Anda memiliki opsi "Nonaktifkan cache (selagi DevTools terbuka)" diaktifkan di DevTools, maka cukup dengan membuka DevTools sudah cukup untuk mem-bypass cache redirect, tanpa terus-menerus membuang sesi Anda.

Mike Gossmann
sumber
9
catatan: jika devTools terbuka, ada cara cepat untuk menghapus cache: klik tombol segarkan dengan klik kanan dan pilih memuat ulang penuh;)
user65130
5
ini tidak berfungsi sepanjang waktu. Saya menghapus semua cache dan masih mengarahkan ulang. Hanya dengan mode penyamaran ia berfungsi dan Anda mendapatkan perilaku yang konsisten
Claudiu Creanga
2
Mengapa ini bukan solusi teratas? yang lain mengerikan dibandingkan!
Brian
4
Tidak berfungsi lagi ... Mungkin berhasil pada tahun 2014
Tuan Loh.
@ LordLoh. Saya baru saja mencoba ini di Chrome versi terbaru, dan bekerja persis seperti yang diharapkan. Dengan devtools ditutup, redirect di-cache. Memuat ulang halaman dengan alat yang terbuka tidak mengarahkan ulang.
Mike Gossmann
20

Chrome cache pengalihan HTTP dan berhenti memeriksa dengan situs jika pengalihan telah berubah. Ini bisa membuat frustrasi, karena cara termudah untuk memperbaikinya (mengunjungi situs dan memaksa penyegaran keras) tidak dapat digunakan karena pengalihan akan terjadi sebelum Anda mengakses tautan. Ini adalah masalah tidak akan diperbaiki .

Untuk mengatasinya, Anda dapat menghapus data penelusuran Anda, seperti dijelaskan di sini atau Anda dapat mengikuti langkah-langkah di bawah ini dan menghindari kehilangan riwayat Anda.

  1. Buka Alat Pengembang Chrome dev-tools

  2. Klik di Pengaturan pengaturan

  3. Periksa Nonaktifkan cache (saat DevTools terbuka) nonaktifkan

  4. Kunjungi situs yang Anda inginkan dan masalah cache akan diselesaikan.

Zanon
sumber
2
Anda akan menemukan opsi "disable cache" pada tab jaringan juga, itu adalah opsi yang sama. Untuk pengalihan debugging, saya sarankan menggunakan "simpan log" juga.
Trendfischer
15

Pergi ke chrome: // net-internal dan di paling kanan buka drop-down dan pilih "Clear Cache". Pada versi 48, ini adalah satu-satunya hal yang berhasil bagi saya untuk menghapus 301 (cache redirect permanen) yang di-cache.

Pembaruan: Sayangnya, pada versi 71 (Des 2018) Google telah menghapus fitur net-internal.

McGuireV10
sumber
1
Bekerja di Chrome 56
spencer.sm
Masih berfungsi di Chrome 67
SCO
Jangan bekerja di Chrome 71. Penampil acara internal dan fungsionalitas terkait telah dihapus.
userlond
8

domain .dev terpaksa menggunakan HTTPS di Chrome 63+

Sejak Chrome 63, keluar Desember 2017, semua domain yang berakhir dengan .dev (dan .foo) terpaksa menggunakan HTTPS melalui tajuk HTTP Strict Transport Security (HSTS) yang dimuat sebelumnya.

Lebih lanjut tentang hal itu di sini: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

Lucas Bustamante
sumber
Ini pastilah pelakunya! Saya menghabiskan JAM mencoba untuk mencari tahu apa yang sedang terjadi. Terima kasih telah memposting ini!
Jabari
Jawaban ini membutuhkan lebih banyak suara. Mungkin bukan masalah yang dimiliki si penanya, tetapi bagi banyak devs yang menemukan jawaban ini dalam hasil pencarian mereka.
bp.
Allah! Siapa yang akan datang dengan ide cemerlang seperti itu!
Pavel Niedoba
7

Untuk menghapus cache redirect untuk satu halaman di Chrome, Lihat Sumber dan lakukan penyegaran keras (CTRL + SHIFT + R).

Ini berfungsi karena browser sumber tidak secara otomatis mengikuti pengalihan 301.

Matthew Blackford
sumber
4
Tidak bekerja untuk saya di Chrome 25
swrobel
3
Ini tidak berfungsi jika pengalihan untuk semua halaman. Saya punya www. -> tidak ada www. redirect - jadi redirect adalah pada hit pertama, jadi saya tidak bisa menyegarkan apa pun. Setiap kali saya mencoba untuk pergi ke halaman untuk menyegarkannya mengikuti 301 - maka sudah terlambat!
Ian Grainger
1
@Ian Bagaimana jika Anda mengetik di sumber tampilan bilah alamat: www.example.com? Apakah itu memungkinkan Anda menyegarkan tanpa diarahkan?
Matius Blackford
1
@ MatthewBlackford AFAICT hal yang sama, saya benar-benar mendapatkan sumber halaman yang diarahkan. Tidak yakin tes saya sehebat itu, meskipun TBH. Saya telah menghapus riwayat penelusuran untuk 'memperbaiki' masalah ini.
Ian Grainger
2
Ini hanya berfungsi untuk pengalihan javascript dan metatag. Pengalihan HTTP masih diikuti
bebas
6

Seperti yang dijelaskan di sini dapat disebabkan oleh HSTS

Untuk menyiasati ini, saya melakukan yang berikut.

Di bilah alamat Chrome, ketik "chrome: // net-internal / # hsts" Di bagian paling bawah halaman adalah kotak teks domain QUERY - verifikasi bahwa situs Anda (mis. Host lokal) dikenal oleh browser. Jika ya, HAPUS localhost domain menggunakan kotak teks di atas Situs Anda sekarang harus bekerja menggunakan HTTP tua biasa

Tonino
sumber
1
Hei, terima kasih. Ini sangat membantu dengan https redirect arahan mendadak.
Ruberoid
5

Baik di Chrome atau Firefox, Anda dapat menyegarkan redirect dengan mengetikkan "view-source: redirect.yoursite.com" dan menekan enter. Kemudian, segarkan halaman itu. Sekarang, itu akan memaksa Chrome atau Firefox untuk menyegarkan redirect.

mrbofus
sumber
Ini satu-satunya jawaban yang berhasil untuk saya.
JaredThirsk
4

Jika Anda hanya ingin memeriksa arahan ulang berfungsi seperti yang diharapkan, mungkin lebih mudah menggunakan alat baris perintah seperti wget atau sejenisnya. Anda dapat memeriksa header respons dan arahan ulang tidak di-cache.

Tom Wilson
sumber
3

Untuk mengembangkan tujuan, saya sarankan Anda di Chrome membuka pengaturan DevTools dan centang "Nonaktifkan cache". Maka pengalihan 30x tidak di-cache dan Anda dapat men-debug file .htaccess dan seterusnya! masukkan deskripsi gambar di sini

lukyer
sumber
Yang aneh adalah bahwa opsi ini tidak membantu. Saya menonaktifkan cache tetapi masih mengatakan di tab jaringan 301 Moved Permanently (from disk cache).
mgutt
Itu sama persis dengan mengklik 'disable cache' saat tab jaringan terbuka. Tidak - tidak menghapus arahan ulang.
bshea
1
  1. Pergi ke chrome://settings/search#clear%20browsing%20data

  2. Klik "Hapus data penjelajahan"

  3. Centang "Gambar dan file dalam cache" (dan hapus centang pada sisanya jika Anda mau)

  4. Klik "Hapus data penjelajahan"

masukkan deskripsi gambar di sini

guaka
sumber
1

metode paling sederhana, penyegaran keras. tahan Ctrl+ Rbeberapa detik. Ini menghapus pengalihan serta sumber daya statis.

Ryu_hayabusa
sumber
Mengapa Anda menahannya alih-alih sekadar menekan Ctrl+R?
gronostaj
@gronostaj Bukankah jawaban saya sederhana dan sederhana ?? . Tanpa memegang, itu hanya penyegaran yang normal. Yang tidak menghapus sumber daya atau pengalihan cache.
Ryu_hayabusa
Memegang seperti menekannya beberapa kali. Buka Notepad dan tahan R, beberapa Rs akan muncul. Ini persis sama, tetapi dengan Ctrl. Memegang Ctrl+ Radalah sama persis dengan menekannya belasan kali per detik selama beberapa detik. Itu tidak pintar, itu menyalahgunakan mekanisme refresh bawaan dan mengandalkan perilaku tidak berdokumen.
gronostaj
@gronostaj Ya itu adalah perilaku tidak berdokumen. Jawaban yang diterima tidak bekerja untuk saya. Itu sebabnya saya membagikannya di sini. Saya tidak melihat cara lain untuk menghapus pengalihan cache. Jika Anda tahu metode lain, jangan ragu untuk berbagi.
Ryu_hayabusa
Sudah mencoba dan tidak berhasil (301 redirect di seluruh domain).
mgutt
1

Jika Anda tidak ingin kehilangan seluruh cache dan pengalihan Anda masih terjebak dalam cache, Anda dapat mencoba mengunjungi sumber-view: versi url. Itu menyegarkan cache redirect dari url yang sama untuk saya.

Ogier Schelvis
sumber
0

Saya mencoba semua jawaban di halaman ini tetapi tidak ada yang berhasil sampai saya menjalankan flushdns di jendela command line.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

FYI, saya sudah Disable cachememeriksa sebagaimana disebutkan dalam jawaban ini .

Damodar Bashyal
sumber