1

これを行うための唯一の決定的なガイドまたは方法を見つけようとして、数え切れないほどの回答と質問に目を通しましたが、誰もが異なる方法を持っているようです. テンプレートで静的ファイルを提供する方法を誰かに説明してもらえますか?

Django 1.4 を使用してまったく新しいプロジェクトを作成したと仮定すると、画像をレンダリングできるようにするために何をする必要がありますか? メディア フォルダーと静的フォルダーはどこに配置すればよいですか?

4

4 に答える 4

2
  1. 静的ファイルを配置する<app>/staticか、絶対パスを追加しますSTATICFILES_DIRS
  2. でファイルを提供するように Web サーバーを構成します (Django で静的ファイルを提供しないでください)。STATIC_ROOT
  3. WebSTATIC_URLサーバーが提供するベース URL を指す
  4. 走る./manage.py collectstatic
  5. 必ずRequestContextレンダー呼び出しで使用し、{{ STATIC_URL }}パスのプレフィックスとして使用してください
  6. コーヒーを飲みながら背中を撫でる

Django の前で Web サーバーを実行する方法についてもう少し説明します。Django は実際にはアプリケーション サーバーです。静的ファイルの提供に適しているようには設計されていません。そのため、 の場合は積極的に拒否しますDEBUG=False。また、Django 開発サーバーは本番環境には使用しないでください。これは、常に Django の前に何かがあるべきであることを意味します。これは、gunicorn などの WSGI サーバー、または nginx や Apache などの「実際の」Web サーバーである可能性があります。

リバース プロキシ (nginx や Apache など) を実行している場合は/static、ファイル システム内のパスにバインドし、残りのトラフィックを Django に渡すことができます。つまりSTATIC_URL、相対パスにすることができます。それ以外の場合は、絶対 URL を使用する必要があります。

于 2013-03-07T22:49:29.333 に答える
0

作成したプロジェクトには静的フォルダーが必要です。そこにすべてのリソース(画像、...)を入れます。次に、HTMLテンプレートで、STATIC_ROOTを参照し、リソースパスを追加できます(静的フォルダーに対して)

于 2013-03-07T21:43:42.977 に答える
0

公式ドキュメントは次のとおりです。

静的ファイルの管理方法: https://docs.djangoproject.com/en/1.4/howto/static-files/

一般的な静的ファイル: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/

プロダクション タイプの設定でデプロイする予定がある場合は、次のセクションをお読みください: https://docs.djangoproject.com/en/1.4/howto/static-files/#staticfiles-production

通常、静的フォルダーとメディア フォルダーは django プロジェクト アプリの外に置きます。

于 2013-03-07T21:59:55.113 に答える
0
  • 設定で STATICFILES_DIRS、STATIC、および MEDIA パスを定義します。
  • テンプレートフォルダー、urls.py、settings.py などの横に staticfiles フォルダーを作成します。
  • 画像をアップロードすると自動的に作成されるため、メディア フォルダーを作成する必要はありません。
  • あなたのurlconfにこれを入れてください:

    from django.conf.urls import patterns, include, url
    from django.contrib import admin
    from django.conf import settings
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    from django.conf.urls.static import static
    
    admin.autodiscover()
    
    urlpatterns = patterns('',
        .............
    ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    
    urlpatterns += staticfiles_urlpatterns()
    
  • テンプレート内:

    {% load static %}
    <img src="{% static 'images.png' %}">
    <img src="{{MEDIA_URL}}images.png">
    
于 2013-03-08T01:35:06.827 に答える