2014-04-27 75 views
4

我遇到了一個奇怪的問題,希望有些人可以面對同樣的問題在哪裏。我的問題,就像django應用程序中存儲的媒體無法通過MEDIA_ROOT URL 。當我嘗試使用URL myhost/media /獲取保存在我的應用程序中的媒體文件列表時,它顯示了所有媒體文件。但是當我嘗試使用URL myhost/media/image.jpg查看它們時,出現錯誤找不到請求的頁面。Django媒體URL找不到

錯誤跟蹤跟蹤:

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. 

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

也許,試試這個:'MEDIA_ROOT = os.path.join(BASE_DIR,'media')'如果你使用Django> 1.5 – xyres

+0

這是否意味着問題得到解決? – skzryzg

+0

@skzryzg不,問題沒有解決。 – Ramakrishna

回答

1

經過這麼多的路徑後,終於我解決了這個問題。這個問題與媒體文件的權限有關。嘗試訪問這些媒體文件的過程是root,並且這些文件由用戶擁有。有一個內核補丁可以阻止這些類型的訪問。所以爲什麼404錯誤返回響應。