Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah Perbezaan Antara STATICFILES_DIR, STATIC_ROOT dan MEDIA_ROOT dalam Django?

Apakah Perbezaan Antara STATICFILES_DIR, STATIC_ROOT dan MEDIA_ROOT dalam Django?

Patricia Arquette
Patricia Arquetteasal
2024-10-25 13:23:30240semak imbas

What's the Difference Between STATICFILES_DIR, STATIC_ROOT, and MEDIA_ROOT in Django?

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:

  • Gunakan STATIC_ROOT untuk menentukan lokasi daripada fail statik anda dan tambahkan skrip JS tersuai ke lokasi itu.
  • Gunakan STATICFILES_DIRS untuk menambah direktori tambahan di mana Django akan mencari fail statik dan menambah skrip JS pada direktori itu.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn