Как обслуживать статические и динамические файлы в URL-адресах разработки Django 1.3? - PullRequest
1 голос
/ 22 июня 2011

Я немного озадачен. В процессе разработки я пытаюсь обслуживать как статические, так и динамические файлы для своего приложения в DJango 1.3. Мне нравятся новые статические функции, но я не могу заставить их работать должным образом.

Когда я читаю документы, похоже, что следующее должно работать. Он отлично работает с динамическими вещами, но не статично.

urlpatterns += staticfiles_urlpatterns()

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

Ответы [ 2 ]

7 голосов
/ 23 июня 2011

В django 1.3 статический и динамический контент разделены.чтобы использовать новые функции, настройте проект следующим образом:

project
 |- app1
 |- media       # exists only on server/folder for dynamic content
 |- static-root # exists only on server/folder for static content
 |- static      # folder for site-specific static content
 |- settings.py
 |- manage.py
 `- urls.py

settings.py

from os import path
PROJECT_ROOT = path.dirname(path.abspath(__file__)) #gets directory settings is in

#-- dynamic content is saved to here --
MEDIA_ROOT = path.join(PROJECT_ROOT,'media')
MEDIA_URL  = '/media/'

#-- static content is saved to here --
STATIC_ROOT = path.join(PROJECT_ROOT,'static-root') # this folder is used to collect static files in production. not used in development
STATIC_URL =  "/static/"
ADMIN_MEDIA_URL = STATIC_URL + 'admin/' #admin is now served by staticfiles
STATICFILES_DIRS = (
    ('site', path.join(PROJECT_ROOT,'static')), #store site-specific media here.
)

#-- other settings --
INSTALLED_APPS = (
    ...
    'django.contrib.staticfiles',
    ...
)

urls.py

from django.conf import settings

#your URL patterns

if settings.DEBUG:
    urlpatterns += staticfiles_urlpatterns() #this servers static files and media files.
    #in case media is not served correctly
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
        }),
    )
1 голос
/ 24 июня 2011

Проверьте STATIC_URL из settings.py, какое значение?

...