DjangoでCSSを使用するにはどうすればよいですか?


110

Djangoを使用してアプリケーションを作成していますが、DjangoでCSSファイルを使用するにはどうすればよいですか?Djangoにcssファイルを表示させるには、どのような設定が必要ですか?

注意:ローカルマシン上

回答:


48

開発サーバーを使用している場合は、djangoプロジェクトのハウツーガイドに従って静的ファイル管理し、URLを設定してから、テンプレート内のメディアファイルを参照してください/site_media/images/foo.gif


25
これらのDjangoドキュメントに関する簡単なメモ-使用しているDjangoのバージョンのドキュメントを選択してください。静的ファイルに関しては、バージョン間で状況が大きく変化しているようです。
Sam Starling、2010年

3
@Samには大きな意味があります。私の人生の静的ファイルを理解できなかった。次に、インストールされているdjangoのバージョンを変更してください。それは文字通り私がしなければならなかったすべてでした。明らかに私は間違ったバージョンのドキュメントを見ていたからです。
Josh Brown、

36

より一般的に言えば、Djangoから静的ファイルを提供する方法を尋ねています。Apacheで実行している場合は、http://docs.djangoproject.com/en/dev/howto/deployment/modpython/をお読みください。

開発サーバー(ラップトップなど)を実行している場合は、http://docs.djangoproject.com/en/dev/howto/static-files/をお読みください。

Django開発サーバーに関する大きな太った免責事項に注意してください。

  • このサーバーの使用は非効率的で安全ではありません。
  • これを本番環境で使用しないでください。
  • これは開発にのみ使用してください。

「本番環境では使用しないでください。」これを拡張してもよろしいですか?
クリス

@クリス:そうだね、ステートメントは少し曖昧だった。私はDjango開発サーバーについて言及していました。実稼働サイトで数回実行しましたが、危険な問題をデバッグしている間は短時間でした。
Peter Rowell、2011

説明をありがとう、私はapacheで実行されている私のdjangoデプロイメントを見て、何が悪いのかと思っていました。:)
Chris

1
いいね。3つのアイテムが同じことを別の言い方で言っているのが好きです。警告をありがとう。
神戸ジョン2011年

13
回答が投稿されてから4.5年後、投票に反対票を投じる人が大好きです。彼らはDjango 11/08に何であったかさえ知っていたのでないでしょうか...おそらく知らないでしょう。私に届くのは担当者のポイントではありません。それは、無知と傲慢さの組み合わせと、パーティーに遅れをとっているというほんの少しのヒントです。1987年に私の投稿をcomp.lang.cにどのように評価するのでしょうか。質問しない方がいい。
Peter Rowell、2013

13

これはしばらくの間私にも問題を引き起こしました(404 not foundエラー)。私にとって欠けているのはSTATICFILES_DIRS、settings.py のタプルを編集してこれを与えることでした:

STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)

次に、djangoプロジェクトの最上位にある「メディア」というフォルダー内のCSSファイルを取得しました。

私も持っていました:

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'

/上記のリードがあることを確認してくださいSTATIC_URL

もちろん、上記のように、HTMLファイルからCSSファイルを適切に含める必要があります。私が持っていた:

<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />

最後に、明確でシンプルでエレガントなソリューションです。django 1.5で正常に動作します。
pbarill 2013

#Windowsでも常にスラッシュを使用します。.replace('\\','/')不要です。
mak

12

Djangoにcssファイルを表示させるには、どのような設定が必要ですか?

なし。

テンプレートにCSSファイルが含まれていることを確認し(標準のHTMLと同様)、CSSファイルをメディアサーバーに配置します。

明確にするために:Djangoでは、別のサーバーインスタンスからすべてのメディア(動的htmlでないものすべて)を提供することを強くお勧めします。実装方法は完全にあなた次第ですが、ほとんどの人がサブドメインを作成します。


2
こんにちは、オリ。私はこの投稿が3年近く近いことを知っていますが、これはCSSをdjangoテンプレートにリンクするための最良の方法ですか?これは、cssをstatic.example.comのようなabs URLにリンクし、すべての静的ファイルをそのURLに格納するだけの最も簡単な方法のようです。
cp3


0

djangoでcssを使用する最も簡単な方法は、それを静的ファイルとしてテンプレートに追加することです。

しかし、それはajaxに少し似ています。標準的な方法で組み込む方法を示すものは何も見つかりませんでした。

サイズを最適化したい場合は、django用のcss-compressorモジュールがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.