我遇到了一个奇怪的问题,希望其他一些人可能面临同样的问题。我的问题就是,django应用程序中存储的媒体无法通过MEDIA_ROOT URL提供服务。当我试图获取使用URL myhost / media /显示所有媒体文件保存在我的应用程序中的媒体文件列表。但是当我尝试使用URL myhost / media / image.jpg查看它们时,得到错误请求页面未找到。
错误追踪追踪:
Using the URLconf defined in myapp.urls, Django tried these URL patterns, in this order:
1.^media\/(?P<path>.*)$
The current URL, ~myapp/media/image.jpg, didn't match any of these.
我的app settings.py
MEDIA_ROOT = '/home/itsme/myapp/media/'
MEDIA_URL = '/media/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
'django.template.loaders.eggs.Loader',
)
Urls.py
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = patterns('',
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
任何人都可以建议我解决这个问题。
感谢。
答案 0 :(得分:1)
经过这么多小道,最后我解决了这个问题。问题与媒体文件的许可有关。尝试访问这些媒体文件的过程是root,文件归用户所有。有一个内核补丁阻止了这种类型的访问。所以404错误作为响应返回。