0

Django (1.5) は初めてで、MEDIA_ROOT のメディア フォルダーを相対的に構成するのに苦労しています。プロジェクトでファイル .css、.js、.jpg を請求できません。シェルで次のメッセージを受け取ります。

[2013 年 10 月 6 日 19:12:01]「/media/css/style.css HTTP/1.1 を取得」404 4140

これはプロジェクトのツリーです:

  • _3 ミリ秒
    • _3 ミリ秒
    • アプリ
    • メディア
      • CSS
      • js
      • 画像
    • テンプレート

これが私の構成です

設定.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 %}

前もって感謝します

4

1 に答える 1

3

通常、STATIC_URLCSS や 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 を使用していると仮定しています。

于 2013-10-06T18:00:59.657 に答える