代码之家  ›  专栏  ›  技术社区  ›  Michael Morisy

Django静态媒体文件未通过

  •  0
  • Michael Morisy  · 技术社区  · 16 年前

    在我的一生中,我不能让我的静态媒体文件在我的本地测试机上通过一个特定的项目,尽管我对其他几个Django项目没有问题。

    我使用的是Django1.1.1和WindowsXP环境。

    我的settings.py在媒体托管方面如下所示:

    ROOT_PATH = os.path.dirname(__file__)
    # Absolute path to the directory that holds media.
    # Example: "/home/media/media.lawrence.com/"
    MEDIA_ROOT = os.path.join(ROOT_PATH, 'site_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 = '/site_media/'
    
    # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
    # trailing slash.
    # Examples: "http://foo.com/media/", "/media/".
    ADMIN_MEDIA_PREFIX = '/media/'
    

    它在这里寻找:

    http://127.0.0.1:8000/site_media/schedule/img/add.png

    文件在站点目录中,沿着以下行:

    C:\django\project\file\site\u media\schedule\img\add.png

    但出于某种原因,这张照片还没有出现。

    有什么建议吗?

    1 回复  |  直到 16 年前
        1
  •  3
  •   Thomas    16 年前

    应该完全指定您的媒体根目录;定义媒体根目录如下。

    ROOT_PATH = os.path.dirname(__file__)
    MEDIA_ROOT = os.path.join(ROOT_PATH, 'site_media')
    

    你读过吗? this documentation 关于静态文件;您还应该将额外的路由配置添加到 urls.py 以确保正确处理对静态内容的请求。

    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
            {'document_root': settings.MEDIA_ROOT}),