2

カスタムミドルウェアがあります。settings.pyのMIDDLEWARE_CLASSESタプルに追加すると、サイト上のすべてのcssと画像が消え、サイトにテキストだけが残ります。

ミドルウェア.py

from django.shortcuts import redirect
from django.core import urlresolvers

class AcceptTOSMiddleware(object):
    def process_request(self, request):
        login_url = urlresolvers.reverse('login')
        tos_url = urlresolvers.reverse('tos')
        if request.path not in [login_url, tos_url]:
            profile = request.user.get_profile()
            if not profile.tos:
                return redirect(tos_url)
        return None

settings.py

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
    'pagination.middleware.PaginationMiddleware',
    'utils.middleware.AcceptTOSMiddleware'
)

なぜこれが起こるのか誰かが知っていますか?

4

2 に答える 2

2
  1. これは開発中にのみ発生するはずです。そうしないと、HTTPD が静的ファイルを提供し、django 側でそれをブロックするものは何もなくなります。

  2. runserver のコンソール出力を読むと、静的ファイルの要求が 3xx リダイレクト (おそらく 301) で応答されることが示されているはずです。

  3. 開発の場合、ミドルウェアは、がで始まっていないかどうかも確認する必要がありますnor 、その場合。request.pathsettings.STATIC_URLsettings.MEDIA_URLreturn None

于 2012-11-07T16:13:43.650 に答える
1

Django を介して静的ファイルを提供しているようです。おそらく開発サーバーを使用していますか?

書かれているように、ミドルウェアは、画像や CSS など、ログインに関連しないすべてのパスにリダイレクトします。STATIC_URL と MEDIA_URL の下のすべてを除外することもできます。

于 2012-11-07T16:15:46.453 に答える