我已经设置了Django使用图像的应用程序。我想我已经正确设置了媒体设置 MEDIA_ROOT 和 MEDIA_URL。但是图像不显示。你知道可能是什么问题吗?
让我们考虑这个例子:
图片文件在下/home/www/media/app/photos 我们正在尝试请求 http://example.com/photos/123.jpg
我应该使用这些设置吗?
MEDIA\_ROOT = /home/www/media
MEDIA_URL = http://example.com/app
更新:忘了提及我正在使用内置开发服务器。
最佳答案
仅用于开发
您可以通过在您的 urls.py
中执行此操作来设置静态媒体服务器以与他们的开发服务器一起使用。文件。我附上了显示我如何使用它的代码(以及强制调试条件。)
from django.conf import settings
from django.conf.urls.defaults import *
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^$', 'views.index'),
# Accounts
(r'^accounts/login/$', 'views.user_login'),
(r'^accounts/logout/$', 'views.user_logout'),
# Contrib Modules
(r'^admin/(.*)', admin.site.root),
)
if settings.DEBUG :
urlpatterns += patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
)
我把我的
MEDIA_ROOT
在 html/media 的子目录中,并在 settings.py
中链接到它MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'html/media/').replace('\\','/')
开发完成后,项目被部署到 Web 服务器,然后由 Apache 提供静态媒体文件。使用指令。
关于django - Django 如何提供媒体文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/402841/