Django เวอร์ชันใหม่ 3.1 ไฟล์การตั้งค่ามีการเปลี่ยนแปลงบางอย่าง
Aug 16 2020
ใน Django เวอร์ชัน 3.1 ใหม่ไฟล์การตั้งค่ามีการเปลี่ยนแปลงบางอย่างและฉันมาถามว่าฉันต้องดำเนินการตั้งค่าไฟล์คงที่ของฉันอย่างไร? วิธีที่ฉันมักจะไม่ได้ผลมากกว่า
เวอร์ชันล่าสุด:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
เวอร์ชัน 3.1:
from pathlib import Path
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
ฉันมักจะตั้งค่าไฟล์คงที่ของฉันดังนี้:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media_root')
ถ้าฉันใส่import os
พินัยกรรม แต่เป็นการปฏิบัติที่ถูกต้องหรือไม่? แนวทางปฏิบัติที่ดีที่สุดในการตั้งค่านี้คืออะไร? ขอขอบคุณ?
คำตอบ
6 Roham Aug 16 2020 at 18:59
การเปลี่ยนแปลงนี้ทำให้คุณกำหนดSTATIC
และMEDIA
ตัวแปรได้ง่ายขึ้นมาก คุณไม่จำเป็นต้องนำเข้าos
เพื่อจุดประสงค์นี้และสิ่งที่คุณต้องมีคือเพิ่มรหัสต่อไปนี้ในsettings.py
:
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent # which shows the root directory of your project
STATIC_ROOT = BASE_DIR / 'static' # is equal to os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
MEDIA_ROOT = BASE_DIR / 'media' # is equal to os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
Ankit Nov 17 2020 at 13:44
STATIC_ROOT = BASE_DIR.parent / "static_cdn"
ลองทำเช่นนี้หากคุณต้องการเพิ่ม STATIC_ROOT ของคุณภายในไดเร็กทอรีสภาวะแวดล้อม