Django新版本3.1,设置文件有一些变化
Posted
技术标签:
【中文标题】Django新版本3.1,设置文件有一些变化【英文标题】:Django new version 3.1, the settings file have some changes 【发布时间】:2020-12-05 17:17:00 【问题描述】:在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
会起作用,但这是正确的做法吗?
设置它的最佳做法是什么?
谢谢?
【问题讨论】:
【参考方案1】:STATIC_ROOT = BASE_DIR.parent / "static_cdn"
如果你想在环境目录中添加你的 STATIC_ROOT 试试这个
【讨论】:
【参考方案2】:此更改使您可以更轻松地定义 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/'
【讨论】:
以上是关于Django新版本3.1,设置文件有一些变化的主要内容,如果未能解决你的问题,请参考以下文章
新版本 Django 中 DateModifierNode 的替代品是啥
SpringCloudStream实战拆解以及3.1后新版本特性分析