ฉันกำลังสร้างแอปพลิเคชันโดยใช้ Django และฉันสงสัยว่าฉันจะทำให้ Django ใช้ไฟล์ CSS ของฉันได้อย่างไร ต้องตั้งค่าอะไรบ้างเพื่อให้ Django เห็นไฟล์ css
หมายเหตุ: บนเครื่องท้องถิ่น
ฉันกำลังสร้างแอปพลิเคชันโดยใช้ Django และฉันสงสัยว่าฉันจะทำให้ Django ใช้ไฟล์ CSS ของฉันได้อย่างไร ต้องตั้งค่าอะไรบ้างเพื่อให้ Django เห็นไฟล์ css
หมายเหตุ: บนเครื่องท้องถิ่น
คำตอบ:
หากคุณกำลังใช้เซิร์ฟเวอร์การพัฒนาตามโครงการของ Django วิธีการแนะนำสำหรับการจัดการไฟล์แบบคงที่ในการติดตั้งของ URL ของคุณแล้วคุณอ้างอิงไฟล์มีเดียในแม่แบบ - /site_media/images/foo.gif
พูดภาพในโฟลเดอร์ภาพจาก
โดยทั่วไปแล้วคุณกำลังถามวิธีให้บริการไฟล์แบบคงที่จาก Django หากคุณทำงานภายใต้ Apache คุณควรอ่าน http://docs.djangoproject.com/en/dev/howto/deployment/modpython/
หากคุณใช้เซิร์ฟเวอร์การพัฒนา (เช่นบนแล็ปท็อปของคุณ) โปรดอ่าน http://docs.djangoproject.com/en/dev/howto/static-files/
สังเกตไฟล์ ข้อจำกัดความรับผิดชอบที่ยิ่งใหญ่เกี่ยวกับเซิร์ฟเวอร์การพัฒนา Django:
สิ่งนี้ทำให้ฉันมีปัญหาเหมือนกัน (404 ไม่พบข้อผิดพลาด) บิตที่ขาดหายไปสำหรับฉันคือการแก้ไขSTATICFILES_DIRS
ทูเปิลใน settings.py เพื่อให้สิ่งนี้แก่ฉัน:
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)
จากนั้นหยิบไฟล์ CSS ของฉันในโฟลเดอร์ชื่อ 'สื่อ' ซึ่งอยู่ในระดับบนสุดของโครงการ django ของฉัน
ฉันยังมี:
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'
(ตรวจสอบให้แน่ใจว่าคุณมีชั้นนำ/
ข้างต้นในSTATIC_URL
)
แน่นอนดังที่กล่าวไว้ข้างต้นคุณต้องมีไฟล์ CSS ที่รวมอยู่ในไฟล์ html ของคุณอย่างเหมาะสม ฉันมี:
<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
.replace('\\','/')
ไม่จำเป็น
ฉันต้องตั้งค่าอะไรบ้างเพื่อให้ Django เห็นไฟล์ css
ไม่มี.
ตรวจสอบให้แน่ใจว่าเทมเพลตของคุณมีไฟล์ CSS (เช่นเดียวกับ HTML มาตรฐาน) และวางไฟล์ CSS บนเซิร์ฟเวอร์สื่อ
เพื่อชี้แจง: ด้วย Django ขอแนะนำอย่างยิ่งให้คุณให้บริการสื่อทั้งหมดของคุณ (ทุกอย่างที่ไม่ใช่ html แบบไดนามิก) จากอินสแตนซ์เซิร์ฟเวอร์อื่น วิธีการใช้งานนั้นขึ้นอยู่กับคุณ แต่คนส่วนใหญ่สร้างโดเมนย่อย
django docs อย่างเป็นทางการไม่ได้ช่วยฉัน หวังว่าบล็อกโพสต์ " Django: How to serve static files " จะช่วยคุณได้บ้าง
วิธีที่ง่ายที่สุดในการใช้ css กับ django คือการเพิ่มลงในเทมเพลตของคุณเป็นไฟล์คงที่
แต่มันเหมือนกับ ajax ฉันไม่พบสิ่งใดที่บอกวิธีรวมเข้าด้วยวิธีมาตรฐาน
มีโมดูลcss-compressorสำหรับ django หากคุณต้องการปรับขนาดให้เหมาะสม