0

重複の可能性:
Django と静的ファイルの提供

base.html で CSS をロードする際に 1 つの問題があります。すべての css ファイルをディレクトリ /static に置きます。

私はこのurls.pyコードを入れます:

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^static/(?P<path>.*)$', 'django.views.static.serve',
           { 'document_root': '/home/bkcherry/botstore/botstore/static' }),
    )

そして、base.html に次のように記述します。

<link rel="Stylesheet" type="text/css" href="/static/css.css" />

main.html に移動すると、css スタイルが機能しません。settings.py を構成する必要がありMEDIA_ROOTますMEDIA_URLSTATIC_ROOT?

4

3 に答える 3

1

MEDIA_ROOT または MEDIA_URL を使用しないでください。これは、静的コンテンツではなく、アップロードされたメディア用です。URL パターンを設定する必要はありません。これは、django 1.2 または「ローカル開発に他のサーバーを使用している場合」のみのためです: https:/ /docs.djangoproject.com/en/dev/howto/static-files/#serving-static-files-in-development

静的ファイルが必要です: botstore/botstore/static/botstore/css.css

次に使用します:

HOME_ROOT = os.path.dirname(__file__)

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"

STATIC_ROOT = os.path.join(HOME_ROOT, 'staticfiles')

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# URL prefix for admin static files -- CSS, JavaScript and images.
# Make sure to use a trailing slash.
# Examples: "http://foo.com/static/admin/", "/static/admin/".
ADMIN_MEDIA_PREFIX = '/static/admin/'

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

次に、HTML で静的ファイルを参照できます。

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}botstore/css.css" />
于 2012-10-16T18:27:58.513 に答える
0

公式ドキュメントを確認すると

from django.conf import settings

# ... the rest of your URLconf goes here ...

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

MEDIA_ROOT の末尾には / が必要です ( https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-MEDIA_ROOT )

于 2012-10-16T16:11:53.070 に答える
0

パスの最後にスラッシュが必要だと思います。つまり'/home/bkcherry/botstore/botstore/static/'

于 2012-10-16T16:06:31.623 に答える