Django 1.1(Ubuntu Linux)开发服务器不显示媒体文件——I';我看了其他答案

Django 1.1(Ubuntu Linux)开发服务器不显示媒体文件——I';我看了其他答案,django,Django,我浏览了Django文档,并提出了一些问题。 我试图在本地开发服务器上提供css和图像。我相信我的settings.py和url.py是正确的: settings.py: MEDIA_ROOT = os.path.join(PROJECT_PATH,'media/') # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash if there is a path compon

我浏览了Django文档,并提出了一些问题。 我试图在本地开发服务器上提供css和图像。我相信我的settings.py和url.py是正确的:

settings.py:

MEDIA_ROOT = os.path.join(PROJECT_PATH,'media/')

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com", "http://example.com/media/"
#MEDIA_URL = ''
MEDIA_URL = 'http://localhost:8000/media/'
url.py

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)', 'django.views.static.serve', {
            'document_root': '/media/'
        }),
    )
- 那么我错在哪里呢

这是我的目录:

drwxr-xr-x 11 jgoldstick jgoldstick  4096 2011-12-13 11:06 ..
-rw-r--r--  1 jgoldstick jgoldstick 38925 2011-12-13 10:50 headers.txt
drwxr-xr-x  2 jgoldstick jgoldstick  4096 2011-12-13 10:50 .
-rw-r--r--  1 jgoldstick jgoldstick  6948 2011-12-13 07:56 edynamic_logo.gif
-rw-r--r--  1 jgoldstick jgoldstick    24 2011-12-12 13:18 style.css
jgoldstick@jgoldstick-desktop:~/code/python/django/ETG_Offer_entry/media$ pwd
/home/jgoldstick/code/python/django/ETG_Offer_entry/media

'document\u root'
键的值必须是完整的文件系统路径(即
MEDIA\u root
),而不仅仅是url.py中的
'/MEDIA/'

,您应该使用MEDIA\u root而不是'/MEDIA/'作为document\u root参数,如果不检查MEDIA\u root是否存在(并且您有权访问它)

注意:媒体根目录应为绝对路径

from django.conf import settings
if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
            'show_indexes': True
        }),
    )

其他人已经提供了答案,但你真的应该:

  • 升级到django 1.3并使用
  • 如果必须使用1.1,请使用该应用程序

  • 当您进入生产阶段时,这两种方法都将大有帮助。

    为什么要使用Django 1.1?它已经过期两年了。我改为settings.MEDIA\u ROOT,但仍然有相同的结果更新了我的,您应该检查PROJECT\u路径是否正确ToProject\u路径是否正确,因为它在其他类似这样的地方使用:PROJECT\u路径=os.PATH.dirname(os.PATH.abspath(文件))尝试将show_index=True发送到django.views.static.service并获取您应该获取的文件夹索引。。。如果没有,你得到什么?我得到401,未经授权。我对该目录的权限是drwxr xI,我对django还很陌生,所以我不太愿意使用1.3,但我想我会研究一下。谢谢大家的帮助
    from django.conf import settings
    if settings.DEBUG:
        urlpatterns += patterns('',
            (r'^media/(?P<path>.*)', 'django.views.static.serve', {
                'document_root': settings.MEDIA_ROOT,
                'show_indexes': True
            }),
        )
    
    MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')