0

django サイトにスタイル シートを追加する方法を学習します。必要だと思うコードを追加しましたが、サイトはそれを完全に無視します。これが私のファイルです。

urls.py

import os.path
from django.conf.urls.defaults import *
from users.views import *

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

stylesheets = os.path.join(os.path.dirname(__file__), 'stylesheets')

urlpatterns = patterns('',
  (r'^$', main_page),
  (r'^stylesheets/(?P<path>.*)$',
    'django.views.static.serve',
    { 'document_root': stylesheets }),
    # Examples:
    # url(r'^$', 'chapter6.views.home', name='home'),
    # url(r'^chapter6/', include('chapter6.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),
)

main_page.html ファイル

<html>
  <head>
    <title>The users application</title>
  <link rel="stylesheet"
    href="/var/chapter6/stylesheets/style.css"
    type="text/css" />
  </head>
  <body>
    <h1>The users application</h1>
    Here are the users:
    <p>{{ username1 }} </p>
    <p>{{ username2 }} </p>
    <p>{{ username3 }} </p>
  </body>
</html>

最後にスタイルシートです。

body {
  font-size: 12pt;
  background-color: pink;
}

h1 {
  color: red;
}


p {
  font-size: 20pt;
}

私はすべてのコードを何十回も調べましたが、何も問題が見つかりません。「django: ビジュアル クイック プロ ガイド」という本から django を学んでいます。すべてのコードは本のように見えます。しかし、私は本にいくつかの間違いを見つけました。どんな助けでも大歓迎です。

ありがとう、ボビー

4

2 に答える 2

1

URLconf は「/stylesheets/」をマップしますが、HTML は「/var/chapter6/stylesheets」を見ています。

于 2012-07-23T14:58:10.153 に答える
0

その本は 2009 年に出版されました (とにかく、あまり良いレビューはありません)。2009 年以降、Djangoでは多くの変更が行われたため、私があなたなら、別の出発点を探すでしょう。残念ながら、Django の書籍でこれほど最新のものはあまり出版されていません。

ただし、開始するのに最適な場所は、オンラインの Django bookです。これは印刷中の Django のDefinitive Guideと同じですが、Django 自体の変更に合わせてオンラインで常に更新されています。

そうは言っても、あなたがDjangoの最新バージョン(当時は1.4)を使用していると仮定しています。そうでない場合は、すぐにアップグレードしてください。Django 1.3 以降では、静的ファイルの処理は簡単で、次の設定だけが必要です。

STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media')
MEDIA_URL = '/media/'

に追加django.contrib.staticfilesします。次の行を に追加する必要があるINSTALLED_APPS場合urls.pyあります。

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()

開発中、Django は のstatic下の各アプリのディレクトリにあるものをすべて提供しSTATIC_URLます。プロジェクト全体のリソースが必要な場合は、それらを「assets」などの別のディレクトリに置き、そのディレクトリを に追加しSTATICFILES_DIRSます。

STATICFILES_DIRS = (
    os.path.join(os.path.dirname(__file__), 'assets'),
)

本番環境に移行するSTATIC_ROOTMEDIA_ROOT、Django ではなく Web サーバーによってサービスが提供されます。静的ファイルの目的で、次を実行する必要があります。

python manage.py collectstatic

DjangoにすべてをコピーさせるにはSTATIC_ROOT. これは生産専用です。このディレクトリは、開発中に存在するべきではありません。

以下も参照してください。

于 2012-07-23T15:52:54.667 に答える