更新:似乎是django-heroku程序包引起的,尤其是继承的whitenoise程序包引起的,在文档中,您说应该放它] []
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
在设置文件末尾,我从没做过,但是它仍然强制将根目录设置为'staticfiles'文件夹而不是资产文件夹
原始帖子:
当我运行python manage.py collectstatic时,它将保存到一个名为staticfiles的文件夹中
我必须做些什么才能使这种情况发生,但是我已经搜索了静态文件,但除了'django.contrib.staticfiles'之外,没有其他引用。
这是我的settings.py:
INSTALLED_APPS = [
#some apps
'django.contrib.staticfiles',
#some more apps
'tz_detect',
]
# some more code
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
VENV_PATH = os.path.dirname(BASE_DIR)
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(VENV_PATH, 'media_root')
预期结果是运行python manage.py collectstatic时将创建资产文件夹,但这从未发生。
除来自静态文件夹的文件外,staticfiles文件夹还包含tz_detect文件夹(来自第三方软件包的静态资产),管理文件夹和staticfiles.json
settings.py的中间件部分
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
# some more middleware
'tz_detect.middleware.TimezoneMiddleware',
]
更新:看起来这是由django-heroku包引起的,尤其是继承的whitenoise包,在文档中说您应该把STATIC_ROOT = os.path.join(BASE_DIR,'...
STATIC_ROOT
来更改django_heroku
的名称。