1

私は少し困惑しています。開発中、DJango1.3でアプリの静的ファイルと動的ファイルの両方を提供しようとしています。新しい静的機能は気に入っていますが、これを正しく機能させることができないようです。

ドキュメントを読むと、次のように動作するはずです。それは動的なものをうまく提供しますが、静的ではありません。

urlpatterns += staticfiles_urlpatterns()

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

2 に答える 2

7

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,
        }),
    )
于 2011-06-23T06:05:59.957 に答える
1

STATIC_URLsettings.pyから確認してください、値は何ですか?

于 2011-06-24T09:36:12.823 に答える