1

AptanaStudio3 で PyDev を使用して、Django を使い始めたばかりです。役立つ Django チュートリアルを使用して、単純なプロジェクトのバックボーンを構築しました。現在、基本的な書式設定と色付けに css を使用しようとしていますが、かなりの時間を費やしてきました。

HTMLページはまだ正常に表示されています。CSS(404)を取得していないだけです。私はコンソールからこれを知っています:

[20/Mar/2013 12:41:51] "GET /signup/ HTTP/1.1" 200 306
[20/Mar/2013 12:41:51] "GET /signup/static/signup.css HTTP/1.1" 404 2750

私のファイル構造:

Learning
- Learning
--- templates
----- 404.html
----- 500.html
--- _init.py
--- settings.py
--- urls.py
--- wsgi.py
- signup
--- static
----- signup.css
--- templates
----- signup
------- detail.html
------- index.html
------- results.html
----- __init__.py
----- admin.py
----- models.py
----- tests.py
----- urls.py
----- view.py
--- manage.py
--- sqlite.db
--- python

設定:

STATIC_ROOT = ''
STATIC_URL = 'static/'
STATICFILES_DIRS = ('')
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

私のhtmlテンプレートでは:

<html>
    <head>
        <title>User List</title>
        <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}signup.css" />
...

views.py で:

def ip_address_processor(request):
    return {'ip_address': request.META['REMOTE_ADDR']}
def index(request):
    user_list = User.objects.order_by('name')[:5]
    template = loader.get_template('signup/index.html')
    context = RequestContext(
                             request,
                             {'user_list': user_list,},
                             [ip_address_processor])
    return HttpResponse(template.render(context))

洞察はありますか?

4

1 に答える 1

1
  • YourSTATIC_URLは相対パス(static/)です。これは、すべての静的ファイルが現在のページを基準にして検索されることを意味します。Djangoのテストサーバーはこの動作を予期していないため、静的URLが一致せず、404エラーが発生します。そのパスを絶対的なものにする必要があり、ページに対して相対的なものではありません(/static/たとえば)

  • テストサーバーでDjangoの静的ファイルシステムを使用する場合は、を使用して静的ファイルを収集する必要があります./manage.py collectstatic

  • また、ではなく構文を使用することを強くお勧めします。この代替形式を使用する場合は、ファイルの前の場所に含める必要があることに注意してください。{% static 'signup.css' %}{{ STATIC_URL }}signup.css {% load static %}

于 2013-03-20T08:54:14.993 に答える