5

だから私はdjangoアプリを持っていて、このURLにアクセスします:

http://127.0.0.1:8000/stories

そして私はこれを得る:

Request Method:     GET

Request URL:    http://127.0.0.1:8000/stories

"stories" does not exist

そして、urls.py をチェックアウトすると、次のように表示されます。

#stories
url(r'^stories/$',
    StoryShowView.as_view(
        context_object_name='story_list',
        template_name='accounts/viewAndAddStory.html')
),

最後に、settins.py を見ると、次のように表示されます。

#appends a slash if nothing is found without a slash.
APPEND_SLASH = True

上記のように APPEND_SLASH を設定すると、スラッシュのない URL がスラッシュのある URL に 301 リダイレクトされてから、Web ページが読み込まれませんか?

手動で URL にスラッシュを追加すると、ページが期待どおりに読み込まれ、誰もがお茶を飲んで早々に打ちのめされます。

アップデート:

私のsettings.pyにもこのエントリがあります:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)

アップデート:

URLにアクセスしようとしたときのページのエラーメッセージから:

ジャンゴのバージョン: 1.3.1

解決済み: だから、okm は大金を稼ぎました、ハニー。問題は私のURLでした-一番下に、私はこれを持っていました:

if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:],
        'django.views.static.serve',
        {'document_root': settings.MEDIA_ROOT, 'show_indexes': True})
    )

しかし、私がしなかったのは、MEDIA_URL と MEDIA_ROOT が入力されていなかったことです。settings.pyどちらも単なる空の文字列でした ('')

そのため、URL の検索は、css エントリであると考えて、入力したすべての URL を検索することでした。media_root (CSS などのファイルがあるフォルダー) と media_url (静的ファイルを取得するために使用していた URL) の値を入力しましたが、すべて問題ありませんでした。

4

1 に答える 1

9

"does not exist"ようなものでなければなりません"Page not found"。したがって、通常の 404 ではなく、誤って構成された urlconf のビューの不一致によって発生した 404 に直面していると思われます。たとえば、がdjango.views.static.serve発生することがわかりました。などのビューが などのパスと一致しないHttp404('some_path does not exist')ことを確認できますか?urls.pystatic.serve/stories

一致する場合、Django はサフィックス スラッシュを追加せず、自動的にリダイレクトします。

で確認できます

from django.core.urlresolvers import resolve
resolve('/stories')

どのビューが実際に一致するかを知るために。

于 2012-05-21T14:17:10.153 に答える