【发布时间】:2016-07-19 00:24:36
【问题描述】:
为了提供静态文件(CSS、JS),我设置了设置:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
这意味着我所有的静态文件都需要在项目根目录的static文件夹中
/app1
/app2
/media
/static #They need to be stored here, all static files
/templates
urls.py
settings.py
manage.py
但是,我将它们存储在我应用的静态文件夹中。
/app1/static/ # Storing the static files here
/app2/static/ #and here
/media/
/static/ # but not here
不过,Django 能够为他们服务,这怎么可能?
我用media 文件尝试了同样的事情;设置
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
并将媒体(图像等)文件存储在每个应用程序的单独媒体目录中。这一次,Django 没有提供文件,只有当我将文件移动到项目根目录的 media 目录或将设置更改为 MEDIA_ROOT = os.path.join(BASE_DIR, '<app_name>/media') 时才提供文件。
为什么允许我提供静态文件,即使它们不在项目根目录 static 目录中但不在媒体文件中 - 它们仅从根目录 media 目录提供。
【问题讨论】:
-
最好将此问题标记为已回答。谢谢!