เนื้อหาส่วนนี้เป็นส่วนหนึ่งของวิชา Practicum in Computer Engineering

อ้างอิงจาก: How to serve static files

โปรแกรมประยุกต์บนเว็บมักจะมีแฟ้มที่ไม่เปลี่ยนแปลง (ที่เรียกว่า static file) ที่ต้องส่งให้กับผู้ใช้เสมอ ๆ ยกตัวอย่างเช่น รูปภาพประกอบเว็บ หรือกระทั่ง stylesheet ตัว Django เองไม่ได้ถูกสร้างมาเพื่อทำหน้าที่แจกจ่ายแฟ้มเหล่านี้

อย่างไรก็ตาม ในการพัฒนาเว็บเราจำเป็นต้องใช้แฟ้มดังกล่าว ทำให้ Django ได้เตรียมเครื่องมือสำหรับงานนี้ไว้ แต่พึงระลึกว่าเครื่องมือนี้มีไว้สำหรับในการพัฒนาเท่านั้น ในการใช้งานจริง ควรจัดการให้ web server เช่น apache จัดการแจกจ่ายแฟ้ม static เหล่านี้

เราจะระบุ path ที่ใช้เก็บแฟ้ม static ใน settings.py โดยการเพิ่มบรรทัด เช่น

STATIC_DOC_ROOT = '/ใส่ path ไปยัง/media'

โดยที่ /ใส่ path ไปยัง/media คือ path ไปที่ไดเร็กทอรีที่เราเก็บแฟ้มเหล่านี้ไว้ (โดยปกติเราจะสร้างไดเร็กทอรีชื่อ media ไว้ใน project)

จากนั้นไปแก้แฟ้ม urls.py โดยก่อนอื่นเราต้อง import โมดูลสำหรับเรียกใช้ค่าที่เราตั้งไว้ในแฟ้ม settings.py โดยเพิ่มบรรทัด

from django.conf import settings

ไว้ตอนต้นโปรแกรม

แล้วก็ไปเพิ่มบรรทัดด้านล่างลงในส่วน urlpatterns เพื่อเรียกใช้ view สำหรับแจกจ่าย static file ที่ Django เตรียมไว้ให้

(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
     {'document_root': settings.STATIC_DOC_ROOT}),

โดย site_media/ ด้านบนระบุ URL สำหรับอ้างถึงแฟ้ม static โดยเราอาจจะเปลี่ยนได้ แต่ต้องระวังไม่ให้ซ้ำกับ url ของ ADMIN_MEDIA_PREFIX ที่ระบุไว้ตอนแรกก่อนหน้า

เวลาเราจะเรียกแฟ้มเหล่านี้เราก็เรียกด้วย http://localhost:8000/site_media/แฟ้ม เป็นต้น