2

現在、django にフォルダー構造が設定されています。

{アプリ名}\templates\

{アプリ名}\templates\assets\css\

<link rel="stylesheet" href="assets/css/bootstrap.css" />しかし、テンプレートのようなものを に含めようとすると、{appname}\templates\何らかの理由で読み込まれません。Twitter から直接読み込むこともできますが、可能であれば相対パスを保持したいと思います。

これがうまくいかないのはなぜですか?それが手がかりである場合、PyCharm のサブフォルダーは明るい灰色で表示されますが、なぜそれが起こっているのかもわかりません。


編集:わかりましたので、ここで静的ファイルを設定する方法を読みstatic、メインプロジェクトフォルダーの下にディレクトリを設定し、cssその下にフォルダーを作成しました。

以下を含めるように settings.py を更新しました。

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = ''

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# Additional locations of static files
import os.path

STATICFILES_DIRS = (
    os.path.dirname(__file__).replace('\\','/'),
    # 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.
)

そして追加しようとしました

<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.css" />

私のhtmlファイルに、しかしそれがロードされていません - ここで何が間違っていますか?

4

2 に答える 2

1

アプリのルートにある static というフォルダーに css を保持したいとします。次に、(settings.py 内に)django.contrib.staticfiles含まれていることを確認しますINSTALLED_APPS。を実行するpython manage.py runserverと、静的ファイルが localhost:8000/static/ で利用可能になります (これはSTATIC_URL設定によって定義されます - デフォルトはstatic/です)。

ビューでRequestContextオブジェクトを使用していることを確認する必要があります。これにより、settings.py の変数 (STATIC_URL など) がテンプレートで使用できるようになります。

def your_view(request):
    #...
    return render_to_response('page.html', context_data, context_instance=RequestContext(request))

( render_to_responseの代わりに新しいrender()ショートカットを使用すると、これが処理されます)

実稼働環境でファイルを提供している場合は、コマンドを使用して、すべての静的ファイル (アプリのルートでpython manage.py collectstatic呼び出されたフォルダー内のすべてのファイルと 内のすべてのファイル) を で定義されたフォルダーに移動します。次に、Webサーバーにこれらのファイルを提供させます(これはdjangoによって処理されません。実際、djangoのドキュメントでは、djangoアプリを提供しているのと同じWebサーバーを使用しないことを推奨しているようです)。static/STATICFILES_DIRSTATIC_ROOTSTATIC_URL

静的ファイルを好きな場所に置いて、django にそれらを管理させることができます。ディレクトリの場所を STATICFILES_DIR タプルに含めるだけです。

静的ファイルの提供に関するドキュメントをご覧ください。(django 1.4 を使用していると仮定しました)

于 2013-02-14T06:39:29.350 に答える
0

メディア ファイルをテンプレート ディレクトリに配置しないでください。アプリごとにメディア ディレクトリ (この場合は静的) を使用して、設定ファイルがそれを見つけられるようにします。「Django ディレクトリ構造? 」を参照してください。

Django 管理ファイル、静的ファイル、およびメディア ファイルの混乱も参照してください。

于 2013-02-14T06:05:37.487 に答える