我想爱Django,但是开发环境中的静态文件和媒体文件业务让我发疯。请把我从愚蠢中解救出来。
我在开发机器上。media
我的项目目录的根目录中有文件夹。
在settings.py
我有:MEDIA_ROOT = ''
和MEDIA_URL = '/media/'
。
在urls.py
我有:
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, }),
)
但是我获取媒体文件的唯一方法是引用/media/media/
例如
<img src="/media/media/image.png" />
。
我期望(并且想要)
<img src="/media/image.png" />
谁能告诉我这里发生了什么,并给我一个简单的方法来设置媒体文件处理吗?
非常感谢你。
@Timmy O'Mahony-谢谢!史诗般的帖子,而且很清晰。但这留下了两个问题:
(1)我必须用/media/
和/static/
,不media/
和static/
的MEDIA_URL
和与STATIC_URL
-我这么想吗?
(2)如果是collectstatic
软管/static/
,您将站点级CSS放置在哪里,例如站点的CSS文件?/static/
显然不在。
(3)我将它们放在项目根目录下的目录“ _”中并STATICFILES_DIRS
指向它-这似乎是开发服务器获取其静态文件的位置,尽管有该urlpatterns
指令。如果那是错误的,那么在开发期间您将站点级CSS放在哪里,以及collectstatic
在修改它们时的工作流程是什么-您是否必须在一个位置进行编辑,并在每次编辑后将其收集在其他位置?
MEDIA_ROOT = "media/"