Django: прекратить перенаправление URL-адреса на другую страницу после установки для него значения constant = True. - PullRequest
0 голосов
/ 13 июля 2020

По какой-то причине в моем приложении Django я использовал путь перенаправления, как в моем файле urls.py, так что всякий раз, когда кто-то посещает example.com, он будет перенаправлен на example.com/blog

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls', namespace='blog')),
    path('', lambda request: redirect('blog/', permanent=True)),
]

Теперь я полностью построил свой сайт и добавил представления для example.com. Чтобы посетить эту страницу, я удалил строку, которая перенаправляет путь из моей базы кода, чтобы он больше не перенаправлялся на / blog всякий раз, когда я пытаюсь посетить example.com.

path('', lambda request: redirect('blog/', permanent=True))

Но проблема в том, что я Меня все еще перенаправляют в / blog даже после удаления этой строки.

Та же проблема сохраняется даже в совершенно новом проекте django. т.е. даже если я запустил другой проект django, я не смогу перейти по пути «/», он будет перенаправлен на «/ blog /». Я думаю, это происходит из-за того, что связано с постоянным = True. Любая помощь будет приветствоваться в обращении этого эффекта.

Заранее спасибо.

1 Ответ

1 голос
/ 13 июля 2020

Флаг permanent=True означает, что ваш веб-сервер возвращает 301 - Permanent Redirect, когда кто-то пытается получить доступ к странице index . Вероятно, вам следовало избегать его использования и позволить веб-серверу возвращать 302 - Temporary Redirect.

Статус 301 означает, что ресурс (страница) постоянно перемещается в новое место. Клиент (браузер) не должен пытаться запрашивать исходное местоположение, а с этого момента использовать новое местоположение.

Статус 302 означает, что ресурс временно находится где-то еще, и клиент (браузер) должен продолжить запрашивая исходный URL.

Старайтесь не удалять всю строку, а настраивать ее, как показано ниже

path('', views.index, name='index')

Попробуйте также протестировать ее в режиме инкогнито или отключив кеш.

...