无法执行collectstatic

时间:2014-04-22 09:27:13

标签: python django django-staticfiles

我是django的新手!当我使用命令python manage.py collectstatic时,我收到此错误

django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path

但我可以成功运行服务器。

我的静态文件声明是:

STATIC_ROOT = ''

STATIC_URL = '/static/'


STATICFILES_DIRS = (

    ('assets', os.path.join(PROJECT_DIR, '../static')),
)

并将debug设置为true

DEBUG = True

我该如何解决这个问题?否则我缺少任何安装包?

7 个答案:

答案 0 :(得分:116)

试试这个,

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')

查看https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATIC_ROOT

答案 1 :(得分:8)

您必须在settings.py中的STATIC_ROOT中提供路径,其中收集所有静态文件,例如: -

STATIC_ROOT = "app-root/repo/wsgi/static"

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    ('assets', 'app-root/repo/wsgi/openshift/static'),

    )

答案 2 :(得分:0)

我不得不将STATIC_ROOTSTATIC_URL放在STATICFILES_DIRS声明的上方。

答案 3 :(得分:0)

STATIC_ROOT = "/var/www/YourSiteFolder/static/"
STATIC_URL = '/static/'

看看https://docs.djangoproject.com/en/1.11/howto/static-files/#deployment

答案 4 :(得分:0)

也有此错误。我修复了:

STATIC_URL = '/static/'
if DEBUG:
   STATICFILES_DIRS = [
   os.path.join(BASE_DIR, 'static'),
   ]
else:
   STATIC_ROOT = os.path.join(BASE_DIR,'static')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

答案 5 :(得分:0)

您可以在任何子文件夹中创建“静态”文件夹,并在其中包含必需的文件。 在settings.py中添加以下代码行:

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
STATIC_URL = '/static/'

跑步后 python manage.py collectstatic 一个新的静态文件夹将在您的父App文件夹中创建

答案 6 :(得分:0)

STATIC_ROOT = os.path.join(BASE_DIR, 'assest')
STATICFILES_DIR = [
os.path.join(BASE_DIR, 'static')
]