最佳答案
我很想喜欢 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
的工作流是什么——你是否必须在一个地方编辑它们,并在每次编辑后在其他地方收集它们?