3

これとまったく同じ質問が以前に寄せられました。すべてを読み、この件に関する公式の django ドキュメントを理解しようとしましたが、仮想サーバーで静的ファイルを使用するのにまだ苦労しています。Base.htmlより具体的には、使用するテンプレートを取得しようとしていますbase.css.

私のフォルダ構造は次のようになります。

manage.py
static/CSS/base.css
VergeGreenITEvent_Website/settings.py
VergeGreenITEvent_Website/views.py ect
VergeGreenITEvent_Website/Webpage_Templates/Base.html

(「The django book」を読んで学習していたので、現時点では app フォルダーはありません!)

完全な settings.py はここで見ることができます: http://pastebin.com/JB3mKRcJ

私の Base.html テンプレートには、次のコードがあります。

<head>
    <title>Verge Green IT</title>
    {% load static %}

    <link rel="stylesheet" href="{% static "CSS/base.css" %}" type="text/css" />
</head>

CSS はまだ適用されていません。ここに画像の説明を入力私が間違っていることを理解するのを手伝ってもらえますか? 私は信じられないほど感謝しています。

私はDjangoの最新バージョンを使用しています。(1.4)


urls.py:

from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
import views

urlpatterns = patterns('',

    url(r'^$', views.Home),

)

if settings.DEBUG:
    urlpatterns += staticfiles_urlpatterns() #this serves static files and media files.
    #in case media is not served correctly
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
            }),
    )
4

2 に答える 2

3

Django 1.4 を使用している場合は、静的タグを使用します。

{% load static %}

<link rel="stylesheet" href="{% static "CSS/base.css" %}" type="text/css" />

おそらくURLにもこれが必要です。開発中のファイルはdjangoを介して提供されます

if settings.DEBUG:
    urlpatterns += staticfiles_urlpatterns() #this serves static files and media files.
    #in case media is not served correctly
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
            }),
    )

また、設定では、場所のハードコーディングを避けるのが一般的です。例を次に示します(ちなみに、設定に静的ファイルファインダーはありますか?

PROJECT_ROOT = path.dirname(path.abspath(__file__)) #gets directory settings is in

STATIC_ROOT = path.join(PROJECT_ROOT,'static-root')
# this folder is used to collect static files in production. not used in development

STATIC_URL =  "/static/"

STATICFILES_DIRS = (
    ('', path.join(PROJECT_ROOT,'static')), #store site-specific media here.
)

# 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',
)

TEMPLATE_CONTEXT_PROCESSORS = (
    # other processors...
    "django.core.context_processors.static",
)
于 2012-06-14T13:07:06.227 に答える
0

あなたはsettings.pyそのように書くべきです:

import os
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))

STATIC_URL = '/static/'  # Should be root relative or absolute

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'),
)

# Where your static files will be collected with colletstatic command
# I use it only in deployed configuration with DEBUG=False
# Need to be outside STATICFILES_DIR
STATIC_ROOT = '/var/www/your.site' 

念のため、Firebug または Webkit デバッガーで CSS が読み込まれていることを確認してください。

の場合、Django は静的ファイルを提供しないことに注意してくださいsettings.DEBUG == False

于 2012-06-14T13:12:00.120 に答える