Django-compressor: 404 untuk file terkompresi dalam CACHE

Dibuat pada 7 Mei 2017  ·  6Komentar  ·  Sumber: django-compressor/django-compressor

Saya tidak dapat mengakses file yang dibuat oleh Django-compressor. Itu dibuat di staticfiles/CACHE/ , tetapi ketika saya memuat halaman itu mengatakan:

GET https://site.com/de/static/CACHE/css/5e257aa688ab.css/ 404 (Not Found)
GET https://site.com/de/static/CACHE/js/3f1c59956fa3.js/ 404 (Not Found)

Catatan: Tautan asli dialihkan ke halaman 404, oleh karena itu /de/ di URL. Dalam kode sumber, blok berikut ini benar:

<link rel="stylesheet" href="/static/CACHE/css/5e257aa688ab.css" type="text/css" />
<script type="text/javascript" src="/static/CACHE/js/3f1c59956fa3.js"></script>

Perlu dicatat, bahwa saya menggunakan django-sekizai dan postprocessor yang sesuai compressor.contrib.sekizai.compress .

Pengaturan saya:

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

COMPRESS_STORAGE = 'compressor.storage.GzipCompressorFileStorage'
COMPRESS_URL = STATIC_URL
COMPRESS_ENABLED = True

STATIC_ROOT = '/app/staticfiles/'  # usually computed, ends up here
STATIC_URL = '/static/'

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    # Django-Bower
    'compressor.finders.CompressorFinder',
)

Tag kerangka:

{% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
{% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %}

Dapatkah seseorang membantu saya? Saya terjebak dengan ini selama 3 hari sekarang dan berjam-jam ...

Komentar yang paling membantu

@oesah , terima kasih untuk ini. Saya mengalami masalah yang sama persis. Saya menyadari ini bukan masalah kompresor dan bahwa utas ini sekarang ditutup, tetapi jika Anda telah memulai diskusi tentang whitenoise ini, bisakah Anda memposting tautan. Saya telah menghabiskan beberapa jam mencoba menyelesaikan masalah ini dan utas ini adalah penyelamat!

Semua 6 komentar

Ketika saya mengaktifkan kompresor secara lokal, itu bekerja dengan sempurna! Hanya saja di server, ia tidak dapat menemukan file di folder CACHE, semua hal lain yang ditemukannya.

Ok temuan lain: Saya kira masalah muncul karena kombinasi sekizai + whitenoise + kompresor. Dokumen Whitenoise mengatakan bahwa "_Untuk alasan kinerja dan keamanan WhiteNoise tidak memeriksa file baru setelah startup (kecuali menggunakan mode Django DEBUG). Dengan demikian, semua file statis harus dibuat terlebih dahulu. Jika Anda menggunakan Django Compressor, ini bisa menjadi dilakukan menggunakan fitur kompresi offline._" Jadi Sekizai mengompresnya secara realtime (kompresi offline tidak tersedia karena sifat sekizai), setiap kali pengguna membuka halaman. Whitenoise tidak mencari lagi, jadi menganggap file tidak ada. Ketika saya me-restart Django setelah saya membuka halaman dan file dibuat, itu berfungsi. Tetapi jika saya pergi ke halaman lain, saya harus melakukan proses yang sama lagi (buka halaman dan mulai ulang). Kemudian ia menemukan mereka dengan benar...

Ada ide bagaimana cara memperbaikinya? Tes saya berikutnya adalah tidak menggunakan sekizai dengan postprocessor kompresi, tetapi saya akan menyukai solusi yang bekerja dengan sekizai dan permintaan statis waktu nyata.

Jadi akhirnya memodifikasi whitenoise.django.DjangoWhiteNoise dan berubah

    self.autorefresh = settings.DEBUG
    self.use_finders = settings.DEBUG

ke

    self.autorefresh = True
    self.use_finders = True

Dan sekarang berhasil. Mengabaikan masalah kinerja (yang belum saya perhatikan, sebaliknya, Google Page Speed ​​Insight memberi saya satu poin lagi dengan penyegaran otomatis diaktifkan..), apa masalah keamanannya? Bisakah saya menghindari itu? Akan luar biasa, jika whitenoise juga dapat menangani statika yang dibuat secara realtime (seperti Django-compressor CACHE).

Semoga masukan saya membantu orang lain menemukan ini.

Hai,

Ini bukan masalah kompresor, ini milik stackoverflow atau sejenisnya (atau mungkin forum dukungan whitenoise)

Ya saya sampai pada kesimpulan itu :) Akan bertanya kepada orang-orang dari whitenoise. Terima kasih

@oesah , terima kasih untuk ini. Saya mengalami masalah yang sama persis. Saya menyadari ini bukan masalah kompresor dan bahwa utas ini sekarang ditutup, tetapi jika Anda telah memulai diskusi tentang whitenoise ini, bisakah Anda memposting tautan. Saya telah menghabiskan beberapa jam mencoba menyelesaikan masalah ini dan utas ini adalah penyelamat!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat