Django phiên bản mới 3.1, tệp cài đặt có một số thay đổi

Aug 16 2020

Trên Django phiên bản mới 3.1, tệp cài đặt có một số thay đổi và tôi đã hỏi làm cách nào để tiến hành thiết lập tệp tĩnh của mình? Cách mà tôi thường làm không hiệu quả hơn.

Phiên bản cuối cùng:

import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

Phiên bản 3.1:

from pathlib import Path
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent

Tôi thường đặt các tệp tĩnh của mình như sau:

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')

Nếu tôi chèn di import oschúc có hiệu quả, nhưng nó có đúng cách không? Cách tốt nhất để thiết lập điều này là gì? Cảm ơn bạn?

Trả lời

6 Roham Aug 16 2020 at 18:59

Thay đổi này giúp bạn xác định các biến STATICvà của mình dễ dàng hơn rất nhiều MEDIA. Bạn thậm chí không cần nhập oscho mục đích này và tất cả những gì bạn cần là thêm các mã sau vào 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"

hãy thử điều này nếu bạn muốn thêm STATIC_ROOT của mình vào bên trong thư mục môi trường