Django 3.1新版本,设置文件有一些变化
Django new version 3.1, the settings file have some changes
在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
会起作用,但这是正确的做法吗?
设置这个的最佳做法是什么?
谢谢?
此更改使您可以更轻松地定义 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/'
STATIC_ROOT = BASE_DIR.parent / "static_cdn"
如果你想在环境目录
中添加你的STATIC_ROOT,试试这个
在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
会起作用,但这是正确的做法吗?
设置这个的最佳做法是什么?
谢谢?
此更改使您可以更轻松地定义 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/'
STATIC_ROOT = BASE_DIR.parent / "static_cdn"
如果你想在环境目录
中添加你的STATIC_ROOT,试试这个