Python 在Django中管理静态文件
当我运行127.0.0.1:8000/static/something.jpg时,一切正常。 但是我想得到像这样的127.0.0.1:8000/static/images/something.jpg 当我更改静态文件\u目录时:Python 在Django中管理静态文件,python,django,Python,Django,当我运行127.0.0.1:8000/static/something.jpg时,一切正常。 但是我想得到像这样的127.0.0.1:8000/static/images/something.jpg 当我更改静态文件\u目录时: STATIC_ROOT = '%s/site_media' % PROJECT_DIR STATIC_URL = '/static/' STATICFILES_DIRS = (os.path.join(STATIC_ROOT, 'images'),) 127.0.0.
STATIC_ROOT = '%s/site_media' % PROJECT_DIR
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(STATIC_ROOT, 'images'),)
127.0.0.1:8000/static/images/something.jpg不工作,为什么?使用
STATICFILES_DIRS = ('',)
您的静态目录应该指向项目
站点\u媒体
目录。当向其中添加images'
时,将在../site\u media/images/images/something.jpg
中搜索127.0.0.1:8000/static/images/something.jpg
STATICFILES\u DIRS=(os.path.join(static\u ROOT,'images'))与127.0.0.1:8000/static/something/something一起工作,但STATICFILES\u DIRS=(os.path.join(static\u ROOT,'))不适用于127.0.0.1:8000/static/images/something.jpgRight,因此它应该适用于/
或/images/
。除非将site\u media
下的所有静态文件复制到site\u media/images
中。或者在STATICFILES\u dirs=(os.path.join(STATIC\u ROOT,“”),os.path.join(STATIC\u ROOT,“images”),)中添加这两个dir=(os.path.join(STATIC\u ROOT,”),os.path.join(STATIC\u ROOT,“images”),)不适用于127.0.0.1:8000/STATIC/something.jpg(!)和127.0.1:8000/STATIC/images/somethines.jpg。我得到警告“配置不当:STATICFILES\u DIRS设置不应包含STATIC\u ROOT设置”是的,事实上是这样。静态根仅用于manage.py collectstatic
命令。如果不使用collectstatic
,则不需要它。只需将其保留为空,并使用静态文件\u DIRS=(“%s/site\u media/“%PROJECT\u DIR”,%s/site\u media/images/“%PROJECT\u DIR”)
。但无论如何,您不应该同时需要这两个选项…扩展设置示例
STATICFILES_DIRS = (os.path.join(STATIC_ROOT, ''),)