Perbezaan antara STATICFILES_DIR, STATIC_ROOT dan MEDIA_ROOT dalam Django
Fail statik dalam Django ialah fail yang tidak berubah, seperti imej, CSS dan JavaScript. Django mengurus fail ini secara berbeza bergantung pada tujuan dan penggunaannya.
STATICFILES_DIR dan STATIC_ROOT kedua-duanya digunakan untuk fail statik, tetapi ia mempunyai tujuan yang berbeza. STATICFILES_DIR digunakan untuk menentukan direktori tambahan di mana Django akan mencari fail statik semasa menjalankan arahan collectstatic. Ini berguna jika anda ingin menyimpan fail statik anda di lokasi yang berasingan daripada direktori utama projek anda, seperti dalam pelayan fail statik khusus.
STATIC_ROOT digunakan untuk menentukan tempat Django akan kumpulkan semua fail statik dan sediakannya apabila projek anda digunakan. Ini biasanya ditetapkan kepada lokasi di luar direktori projek anda, seperti /home/user/project/django1/top/listing/static dalam contoh anda.
MEDIA_ROOT digunakan untuk pengguna- fail yang dimuat naik, seperti imej atau video. Tidak seperti fail statik, fail yang dimuat naik boleh berubah dan biasanya tidak berversi. MEDIA_ROOT menentukan tempat fail ini akan disimpan pada pelayan.
Dalam kes anda, anda menggunakan MEDIA_ROOT untuk menyimpan foto yang dimuat naik, yang betul. Walau bagaimanapun, apabila anda cuba memasukkan skrip JS tersuai dalam pentadbir anda, anda menggunakan STATICFILES_DIRS dan bukannya STATIC_ROOT. Inilah sebabnya mengapa anda mengalami 404 ralat semasa memuatkan skrip JS.
Untuk menyelesaikan isu ini, anda boleh sama ada:
Ingat bahawa STATIC_ROOT hanya digunakan apabila projek anda digunakan, jadi disyorkan untuk menggunakan STATICFILES_DIRS semasa pembangunan dan STATIC_ROOT .
Atas ialah kandungan terperinci Apakah Perbezaan Antara STATICFILES_DIR, STATIC_ROOT dan MEDIA_ROOT dalam Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!