2013-08-29 3 views
0

im en utilisant Django 1.5.1/python 2.7.3 aussi virtualenvfichiers multimédias sur django développer

et je ne peux pas déléguer corrertly mes fichiers multimédias 'django.contrib.staticfiles.views', où les fichiers stockés, qui a été téléchargé dans l'interface d'administration par l'application django-ckeditor

fichiers statiques bien servir, mais les médias (images de l'utilisateur) pas bien. par exemple. il retourne

http://127.0.0.1:8000/media/home/raido/dev/project/project/media/Raido/2013/08/28/4bebf51c0a5b.jpg 

et si je règle lien vers http://127.0.0.1:8000/media/Raido/2013/08/28/4bebf51c0a5b.jpg de toute façon, il retourne 404, avec débogage sur mes urls

mon urls.py

from django.conf.urls import patterns, url, include 
from lessons.views import LessonListView, LessonDetailView 
from ckeditor import urls 

from django.conf import settings 
from django.conf.urls.static import static 
from django.contrib.staticfiles.urls import staticfiles_urlpatterns 

urlpatterns = patterns('', 
url(r'^$', LessonListView.as_view(), name='list'), 
url(r'^(?P<pk>\d+)/$', LessonDetailView.as_view()), 
url(r'^ckeditor/', include('ckeditor.urls')), 
) 

if settings.DEBUG: 
    urlpatterns += patterns('django.contrib.staticfiles.views', 
     url(r'^static/(?P<path>.*)$', 'serve'), 
     url(r'^media/(?P<path>.*)$', 'serve'), 
    ) 

settings.py

import os 
_PATH = os.path.dirname(os.path.abspath(__file__)) 
MEDIA_ROOT = "/home/raido/dev/project/project/media/" 
MEDIA_URL = '/media/' 
STATIC_ROOT = "/home/raido/dev/project/project/static" 
STATIC_URL = '/static/' 
STATICFILES_DIRS = ( 
    ... 
    os.path.join(_PATH, 'static'), 
) 
TEMPLATE_DIRS = (
    os.path.join(_PATH, 'templates'), 
) 
TEMPLATE_CONTEXT_PROCESSORS = (
    .... 
    'django.core.context_processors.static', 
) 
CKEDITOR_UPLOAD_PATH = "/home/user/dev/project/project/media/" 
CKEDITOR_RESTRICT_BY_USER = True 

mon arbre -L 4

. 
├── deploy 
│   └── nginx 
│    ├── project.conf 
│    └── projectDeploy.conf 
├── favicon.ico 
├── lessons 
│   ├── admin.py 
│   ├── admin.pyc 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── migrations 
│   │   ├── 0001_initial.py 
│   │   ├── 0001_initial.pyc 
│   │   ├── __init__.py 
│   │   └── __init__.pyc 
│   ├── models.py 
│   ├── models.pyc 
│   ├── templates 
│   │   └── lessons 
│   │    ├── lesson_detail.html 
│   │    └── lesson_list.html 
│   ├── tests.py 
│   ├── urls.py 
│   ├── urls.pyc 
│   ├── views.py 
│   └── views.pyc 
├── logs 
│   ├── nginx_access.log 
│   └── nginx_error.log 
├── manage.py 
├── media 
│   └── Raido 
│    └── 2013 
│     └── 08 
├── news 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── models.py 
│   ├── models.pyc 
│   ├── tests.py 
│   └── views.py 
├── project 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── settings_deploy.py 
│   ├── settings.py 
│   ├── settings.pyc 
│   ├── static 
│   │   ├── css 
│   │   │   ├── foundation.css 
│   │   │   ├── foundation.min.css 
│   │   │   └── normalize.css 
│   │   ├── humans.txt 
│   │   ├── img 
│   │   ├── index.html 
│   │   ├── js 
│   │   │   ├── foundation 
│   │   │   ├── foundation.min.js 
│   │   │   ├── jquery.js 
│   │   │   └── vendor 
│   │   └── robots.txt 
│   ├── templates 
│   │   ├── 404.html 
│   │   ├── 500.html 
│   │   └── base.html 
│   ├── urls.py 
│   ├── urls.pyc 
│   ├── wsgi.py 
│   └── wsgi.pyc 
├── pids 
├── README.md 
└── stati 

Répondre

0
urlpatterns = patterns('', 
        # Uncomment the admin/doc line below to enable admin documentation: 
        # url(r'^admin/doc/', 
        # include('django.contrib.admindocs.urls')), 

        .... 


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

Voilà comment je sers mes médias

+0

grâce, ce réglage mes urls. et ce code doit être prévu ... mais ses médias non résolus servent – Raido

+0

vous avez aussi besoin de "django.core.context_processors.media" dans votre TEMPLATE_CONTEXT_PROCESSORS – montiniz

Questions connexes