W3 Total Cache, CDN dan file tema [ditutup]

10

Saya memperbarui file style.css dari instalasi WordPress saya baru-baru ini. Perubahannya efektif: ketika masuk sebagai administrator (blog saya disetel agar administrator tidak pernah menyajikan versi situs yang di-cache, tetapi versi "langsung"), saya bisa melihatnya.

Tapi blog saya sedang dilayani melalui CDN (menggunakan W3 Total Cache). Melalui CDN, perubahan tidak efektif: CDN tidak menayangkan file yang dimodifikasi dari tema saya. Meskipun saya sudah mengunggahnya setelah modifikasi (Dashboard> Kinerja> CDN> Unggah file tema.

CDN saya berjalan di AmazonCloud Front. Dan Minify dinonaktifkan pada W3 Total Cache.

File tema yang dilayani melalui CDN saya adalah versi terkompresi: style.css.gzip

Haruskah saya "membersihkan" objek dari CDN saya atau menunggu sedikit lebih (sudah lebih dari seminggu). Dan ya, saya mengosongkan cache browser yang saya gunakan untuk melihat perubahan yang terjadi. Atau ada hal lain yang saya lewatkan?

Terima kasih,

P.

Parneix
sumber

Jawaban:

10

Anda juga perlu

  1. Versi file Anda (dengan menyebutnya style.css?ver=xxx.xxx) dan memastikan distribusi CloudFront Anda telah "Teruskan string Permintaan" dihidupkan. Ini adalah opsi yang lebih baik, karena itu artinya yang perlu Anda lakukan adalah menambah angka dalam string kueri dan CloudFront akan mengambil file ini secara otomatis.

  2. Secara manual membatalkan file Anda melalui Konsol AWS (ada tab valid ketika Anda mengedit distribusi Anda)

Untuk mengaktifkan 'Teruskan String Permintaan' lakukan hal berikut:

  • Edit distro Cloudfront Anda dengan mencentang kotak centang di sebelah kiri 'i' dan kemudian klik tombol "pengaturan distribusi" di bilah alat
  • Buka tab Perilaku
  • Pilih garis, dan klik 'Edit'
  • Ubah "teruskan kueri string" ke Ya
  • Klik pada "Ya, Edit"
anu
sumber
1
@kaiser ya, datetime sebagai versi adalah cara terbaik untuk mengversi file. Namun Anda masih perlu memastikan bahwa opsi "Forward Query Strings" dihidupkan di CloudFront, jika tidak, nomor versi yang dibuat dengan baik akan diabaikan: P
anu
Terima kasih. Saya punya dua pertanyaan untuk Anda karena saya tidak terbiasa dengan prosedur ini. 1) Nama file "versi" harus mengikuti persis contoh yang Anda berikan (dengan tanda tanya, tanda yang sama, dan ganti semua "x" dengan nomor pilihan saya) bukan? 2) Di konsol AWS saya untuk CLoudFront, saya klik "I" di sebelah kiri tabel tepat di sebelah distribusi yang saya buat untuk blog saya. Ini memungkinkan saya untuk mengakses pengaturan distribusi. Di sana saya bisa melihat "string Forward Query" adalah "salah". Haruskah saya mereplikasi "perilaku" ini dengan nilai yang sama tetapi dengan "benar" untuk "For. Q. strings"
Parneix
1
1. ya atau Anda dapat menggunakan @ kaiser dengan maksud baik tetapi tidak lengkap untuk memberi nama file Anda. 2. Saya akan memperbarui jawabannya dengan proses
anu
8

Ada "trik" yang cukup sederhana untuk mencegah caching, ketika konten file berubah: Tambahkan nomor versi, yang diatur ke tanggal / waktu terakhir Anda mengubah file Anda.

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' )
    );
}

Ini akan ditambahkan ?ver=0123456789ke tautan referensi style.css Anda di tajuk Anda. Nomor versi hanya akan berubah, ketika konten file diubah. Jadi, Anda memiliki solusi yang berfungsi sempurna dengan a) cache sisi server b) cache browser dan menyegarkan secara otomatis.

kaisar
sumber
Ok, itu opsi yang sangat menarik: ini menghilangkan kebutuhan untuk mengversi style.cssfile saya secara manual setelah setiap modifikasi (yang saya akan lupa lakukan pada satu titik atau yang lain). Sekarang, jika saya boleh bertanya, di mana saya dapat menambahkan kode ini? Saya kira functions.phpfile saya ?
Parneix
Saya tidak tahu, di mana Anda perlu menambahkan kode ini. Cukup cari melalui file tema Anda dan ganti panggilan "normal" ke file style.css. Saya akan memposting pembaruan singkat, sehingga Anda dapat memasukkannya ke file functions.php Anda (ini masih berarti Anda harus menghapus panggilan asli). Dan btw: Ini hanya tambahan jawaban @anu. (Suara positif masih dihargai :)
kaiser
1
Tidak masalah! Saya sangat mengerti bahwa lokasi kode ini kemungkinan akan berubah tergantung dari tema yang digunakan. Saya akan berhasil menambahkannya ke functions.phpfile saya . Saya masih berpikir itu pelengkap yang baik untuk solusi yang disediakan oleh @anu. Terima kasih banyak atas bantuannya.
Parneix
-1

jawaban singkat ...

  1. Hapus semua file tema Anda dan unggah kembali. beberapa kali tindakan hapus menghapus CDN

  2. Ya, Anda dapat mencoba Bersihkan - tetapi Hapus dan unggah kembali biasanya lebih cepat.

  3. Periksa juga pengaturan di W3TC dan di Amazon. Tembolok default untuk di W3TC biasanya 365 hari. yaitu 31536000 detik :)

Di Amazon .. akan ada pengaturan untuk titik akhir untuk meminta kembali CDN. saya tahu di Rackspace defaultnya adalah 24 jam.

Damien
sumber
1
Ada cara yang lebih baik untuk melakukannya daripada ini, lihat jawaban saya
anu
“Hapus semua file tema Anda dan unggah kembali. beberapa kali tindakan hapus menghapus CDN ”Maksud Anda, saya menghapusnya di situs web saya, bukan? Kemudian unggah kembali di instalasi WordPress saya. Dan kemudian saya kira melakukan "Unggah file tema" lagi melalui dasbor W3 Total Cache?
Parneix
1
@Parneix dengan serius, jangan hapus semuanya kecuali Anda harus. Ini hampir pasti tidak akan berhasil kecuali Anda menghapus semuanya dari CDN juga. Ada cara yang jauh lebih baik dari membatalkan file CSS basi Anda
anu
1
Ya terima kasih! Saya mencatat saran Anda dengan baik. Saya sangat menghargai semua bantuan yang saya dapatkan di sini. Saya tidak hanya menyelesaikan masalah saya, tetapi saya juga belajar hal-hal baru.
Parneix