Django 静态文件是从静态文件目录部署的,而不是从静态根目录部署的
我在开发环境中部署文件时遇到问题。Django 静态文件是从静态文件目录部署的,而不是从静态根目录部署的,django,django-staticfiles,Django,Django Staticfiles,我在开发环境中部署文件时遇到问题。 请参阅下面的我的配置。 python manage.py collectstatic按预期从'/Users/vikingosegundo/Projects/website/media/'收集所有文件,并将其存储在/Users/vikingosegundo/Projects/website/mydjangoproject/static/ 但是,尽管使用时指向css文件的链接是正确的(呈现为),但是/Users/vikingosegundo/Projects/we
请参阅下面的我的配置。
python manage.py collectstatic
按预期从'/Users/vikingosegundo/Projects/website/media/'
收集所有文件,并将其存储在/Users/vikingosegundo/Projects/website/mydjangoproject/static/
但是,尽管使用
时指向css文件的链接是正确的(呈现为
),但是/Users/vikingosegundo/Projects/website/media/
上的原始文件将被部署,而不是从静态根目录/Users/vikingosegundo/Projects/website/mydjangoproject/STATIC/
即使我删除了/Users/vikingosegundo/Projects/website/media/
中的文件
我的错误配置在哪里
设置.py
MEDIA_ROOT = '/Users/vikingosegundo/Projects/website/mydjangoproject/media/'
MEDIA_URL = '/sitemedia/'
STATIC_ROOT = '/Users/vikingosegundo/Projects/website/mydjangoproject/static/'
STATIC_URL = '/staticmedia/'
STATICFILES_DIRS = [
'/Users/vikingosegundo/Projects/website/media/',
]
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
#....
)
我认为,这是因为使用django内置视图和助手提供静态文件仅用于开发和调试目的。当DEBUG
在项目设置中为True时,静态文件将从其原始位置提供服务。这有助于避免每次更改CSS文件时被迫运行collectstatics管理命令
当您关闭调试设置时,django.conf.url.static.static
及其同类帮助程序将停止工作,因为它们仅用于开发目的。尽管如此,模板标记仍然可以工作,因为它们必须在生产或开发中指向正确的静态文件URL
运行collectstatic
management命令是将静态文件复制到其最终目的地(static_URL)的一个方便的助手,在生产环境中为其提供服务是您自己的责任。这最好通过一个(静态)web服务器位置来实现(避免通过django/python进程来实现),因此django的文档明确建议不要将django用于静态文件服务
有关在开发中提供静态文件的更多信息,请参阅。嘿,谢谢你的回答。你似乎是对的。也许作者应该在离文档开头更近的地方添加警告。:)