この質問のバリエーションが尋ねられましたが、テンプレートがレンダリングされたときにスタイルシートを正しくロードできません。
開発中に Django プロセスから静的メディアを提供しようとしていますが、これは本番環境では強く推奨されていません。構成とテンプレートを投稿します。うまくいけば、誰かが私が間違っている場所を理解するのを手伝ってくれることを願っています.
Django プロジェクト Web サイトの例に従おうとしたことに注意してください。ただし、テンプレートからスタイルシートを参照する方法については言及されていません。また、同じことのさまざまなバリエーションを試したので、私のコード/設定は説明されているものから少しずれている可能性があります.
設定.py
MEDIA_ROOT = 'D:/Dev Tools/django_projects/dso/media'
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/media/'
urls.py
from django.conf.urls.defaults import *
from django.conf import settings
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^admin/(.*)', admin.site.root),
(r'^ovramt/$', 'dso.ovramt.views.index'),
)
if settings.DEBUG:
urlpatterns += patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
)
私のテンプレート内:
<head>
<title> {% block title %} DSO Template {% endblock %} </title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<link rel="stylesheet" type="text/css" href="../media/styles.css">
</head>
ファイル (テンプレート/メディア) はファイル システムの正しいディレクトリにあることを保証します。提供する必要がある追加情報がある場合は、コメントを投稿してください。
編集:
私が抱えていた問題の 1 つは、リンクの先頭に「/」を使用することでした。スラッシュが先頭に追加されている場合、リンクはサイトのルートから開かれます。スラッシュがない場合、リンクは現在のレベルで開かれます。例:
www.example.com/application/ にはリンク "/app2/" とリンク "app3/" があります
。app2 は www.example.com/app2/ で開き、app3 は www.example.com/application/app3/ で開きます。これは私を混乱させたと思います。