Получение страницы (404) в Django 1.3.1 по шаблону неверных URL - PullRequest
1 голос
/ 13 декабря 2011

Я следую наряду с этим руководством по блогу Django и не могу заставить шаблон URL, указанный в руководстве, работать должным образом. url.py код, который дает автор

(r'^static/(?P
.*)$', 'django.views.static.serve',
    {'document_root': 'c:/static/adornment'}),)

и я адаптировал его к своему Linux, настроенному так:

from django.conf.urls.defaults import patterns, include, url

urlpatterns = patterns('',
        (r'^static/(.*)$', 'django.views.static.serve',
            {'document_root': '/home/sez/blog/static/image.png'}
        ),
)  

и после перехода на http://127.0.0.1:8000/static/image.png я получил следующую ошибку

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/static/image.png
'image.png' could not be found

Как я могу сделать эту работу?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Вероятная причина поведения, которое вы испытывали, заключается в следующем. Вы, вероятно, включили django.contrib.staticfiles в INSTALLED_APS в файле settings.py. В этом случае, когда вы запускаете «manage.py runserver» (и у вас есть DEBUG = True в вашем «settings.py»), статические файлы будут автоматически обслуживаться из вашего STATIC_URL приложением staticfiles, а не вашим «django.views» .static.serve 'шаблон URL. Однако в вашем случае приложение staticfiles настроено неправильно и не найдет ваш файл image.png. Возможно, вы захотите узнать больше об обычном обслуживании статических файлов здесь: Управление статическими файлами .

В этом отношении STATIC_URL не должен быть путем к файловой системе, как у вас сейчас: STATIC_URL . Когда вы сделали это таким образом, вы фактически отключили приложение staticfiles, и ваш код начал работать в результате:)

Итак, чтобы решить вашу проблему «правильно», вам нужно либо убедиться, что STATIC_URL и URL-путь в вашем «urls.py» различаются, например, сделать один из них «/ static /», а другой "/ media /" (или что-то еще), или просто удалите "django.contrib.staticfiles" из ваших INSTALLED_APPS вообще, если вы его не используете. (И, конечно, совет о том, как сделать 'document_root' каталогом, был полностью верным. Вы можете узнать больше об использовании 'django.views.static.serve' здесь: Обслуживание статических файлов в разработке .)

0 голосов
/ 13 декабря 2011

Измените ваш document_root на каталог, и убедитесь, что для параметра STATIC_URL установлено значение / static /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...