无法执行 collectstatic
我刚接触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')),
)
而且调试模式设置为true
DEBUG = True
我该怎么解决这个问题?或者我是不是缺少什么安装包?
9 个回答
1
我需要把 STATIC_ROOT
和 STATIC_URL
放在 STATICFILES_DIRS
声明的上面。
2
我也遇到过这个错误。我是这样解决的:
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')
3
你可以在任何子文件夹里创建一个叫做'静态'的文件夹,并把需要的文件放进去。
在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
之后,你的主应用文件夹里会生成一个新的静态文件夹。
10
你需要在settings.py文件中指定一个路径,这个路径是用来存放所有静态文件的,通常叫做STATIC_ROOT。例如:
STATIC_ROOT = "app-root/repo/wsgi/static"
STATIC_URL = '/static/'
STATICFILES_DIRS = (
('assets', 'app-root/repo/wsgi/openshift/static'),
)
176
试试这个,
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