Django 1.5(MEDIA_ROOT,TEMPLATE_DIRS)

时间:2013-10-06 17:48:46

标签: python django web

我是Django(1.5)的新手,我很难在MEDIA_ROOT中对媒体文件夹进行相对配置。 我无法在我的项目中收取文件.css,.js,.jpg。我在shell中收到以下消息:

[06 / Oct / 2013 19:12:01]“GET /media/css/style.css HTTP / 1.1”404 4140

这是项目的树:

  • _3Ms
    • _3Ms
    • 应用
    • 媒体
      • CSS
      • JS​​
      • 图像
    • 模板

这是我的配置

setting.py

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

MEDIA_URL = '/media/'

STATIC_ROOT = ''

STATIC_URL = '/static/'

STATICFILES_DIRS = (
)


STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = '_3Ms.urls'

WSGI_APPLICATION = '_3Ms.wsgi.application'

TEMPLATE_DIRS = os.path.dirname(__file__), 'templates',
)

home.html的

{% block css %}<link href="/media/css/style.css" rel="stylesheet">{% endblock %}

提前谢谢

1 个答案:

答案 0 :(得分:3)

您通常使用STATIC_URL作为CSS和Javascript等静态资源。媒体用于管理员或用户上传的文件。

请填写您的STATICFILES_DIR并在模板中使用STATIC_URL

设定:

import os.path

PROJECT_PATH = os.path.abspath(os.path.join(os.path.split(__file__)[0], '..'))

STATICFILES_DIRS = [
    '/path/to/your/static/assets',
    os.path.abspath(os.path.join(PROJECT_PATH, '..', 'static')),
]

模板:

{% block css %}<link href="{{ STATIC_URL }}css/style.css" rel="stylesheet">{% endblock %}

我假设你正在使用Django devserver。