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',
...
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'),
)
Symlink folder #
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>