没有找到Django媒体URL [英] Django media URL not found

查看:241
本文介绍了没有找到Django媒体URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了一个奇怪的问题,希望有一些人可以面对同样的问题。我的问题就像是在django应用程序中存储的媒体不能通过MEDIA_ROOT URL来服务。当我试图获取保存在我的应用程序中的媒体文件列表,使用显示所有媒体文件的URL myhost / media / it。但是当我尝试使用URL myhost / media / image.jpg查看它们时,获得错误请求的页面未找到。



错误跟踪跟踪:

 使用myapp中定义的URLconf。 url,Django按照以下顺序尝试了这些URL模式:

1. ^ media \ /(?P< path>。*)$

当前的URL〜 myapp / media / image.jpg,没有匹配任何这些。

我的应用程序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



<$ p $从django.conf导入设置
从django.conf.urls.static导入静态

urlpatterns = patterns('',

)+ static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)

任何人都可以建议我解决方案为此。



谢谢。

解决方案

经过这么多路径,最后我修复了问题。问题与媒体文件的权限有关。尝试访问这些媒体文件的过程是root和文件由用户自己拥有。有一个内核补丁可以防止这些类型的访问。所以404错误作为响应返回。


I'm running into a strange issue,hope some where else some one can had faced the same problem.My problem which is like, the stored media in django application are not able to serve through MEDIA_ROOT URL.When I tried to get list of media files that are saved in my application using URL myhost/media/ it showing all the media files.But when I tried to view on of them using URL myhost/media/image.jpg, got error Requested page not found.

Error Track Trace:

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.

My 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)

Can any one suggest me solution for this.

Thanks.

解决方案

After so many trails,finally I have fixed the issue.The problem is related to permission of media files.The process that's trying to access these media files is root and the files are owned by the user itsme. There's a kernel patch that prevents these type of accesses.So why 404 error is returning as response.

这篇关于没有找到Django媒体URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆