File Statis Tidak Tampil Saat Pengaturan Debug False di Django

Ketika melakukan deploy Django ke Production, sangat disarankan untuk setting debug ke False karena alasan keamanan. Tetapi setelah setting debug file statis tidak dapat tampil sehingga tampilan website menjadi berantakan.

Berikut beberapa cara yang dapat Anda lalukan agar file static dapat muncul kembali.

Install whitenoise

pip install whitenoise

Selanjutnya edit file setting.py lalu tambahkan konfig berikut

import os, random, string
...
MIDDLEWARE= [
'whitenoise.middleware.WhiteNoiseMiddleware',
...
Bagian import letakan dipaling awal sebelum from pathlib

Anda juga dapat mengurangi ukuran file statis sehingga dapat menambah kecepatan load website dan menjadikannya lebih efisien.

# Simplified static file serving.
# https://pypi.org/project/whitenoise/
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

Edit bagian STATIC.

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

Cara kedua adalah membuat symlink folder static ke root directory yang dapat terbaca pada webserver Anda.

ln -s /home/user/myapp/staticfiles /home/user/public_html/static

Webserver

Cara terakhir, Anda dapat setting static files dengan menambahkan konfigurasi berikut ke webserver yang Anda gunakan

Nginx

    location /static/ {
        root /home/sammy/myprojectdir;
    }

Apache

Alias /static/  "/path/to/static/"

<Directory /path/to/static/>
	Require all granted
</Directory>