Django-manage.py collectstatic保存到错误的文件夹

问题描述 投票:1回答:1

更新:似乎是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,'...

django django-staticfiles django-settings django-static
1个回答
1
投票
似乎没有[[monkey patching软件包,就无法使用STATIC_ROOT来更改django_heroku的名称。
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.