【问题标题】:Django remove trailing slashes - urls or redirectDjango 删除尾部斜杠 - url 或重定向
【发布时间】:2019-07-14 12:09:06
【问题描述】:

我正在尝试删除urls 中的尾部斜杠,或者如果在末尾添加斜杠则进行重定向。我试图在 Internet 上的资源上做到这一点,但它对我不起作用。我想我做错了什么。

urls.py - 应用

app_name = 'shop'
urlpatterns = [
    # product
    path('', views.product_list, name='product_list'),
    path('show/<slug:slug>', views.product_show, name='product_show'),
    path('<slug:category>', views.product_list, name='lst_by_ctgry'),
    path('<slug:category>/<slug:subcategory>', views.product_list, name='lst_by_subctgry'),
    path('<slug:category>/<slug:subcategory>/<slug:kind>', views.product_list, name='lst_by_knds'),
    # info - these urls doesn't work without slashes. works only with slashes
    path('pad', views.pad, name='pad'),
    path('guarantee', views.guarantee, name='guarantee'),
    path('contacts', views.contacts, name='contacts'),
    path('about', views.about, name='about'),
    path('privacy', views.privacy, name='privacy')
]

urls.py - 项目

urlpatterns = [
    path('', include('orders.urls')),
    path('', include('cart.urls')),
    path('', include('shop.urls')),
    path('admin/', admin.site.urls),
]

settings.py

APPEND_SLASH = False
REMOVE_SLASH = True
MIDDLEWARE = [
    ...
    'django.middleware.common.CommonMiddleware',
    ...
]

Сan你举个例子请我如何删除所有网址中的尾部斜杠或获取重定向

【问题讨论】:

  • 惯例是在 URL 后面加上斜杠。为什么要这样做?
  • @IainShelvington,我想让它在 URL 的末尾没有斜杠,如果添加了,那么它将被重定向到没有破折号的地址

标签: django django-urls


【解决方案1】:

虽然建议使用尾部斜杠。但如果你不想这样,你可以在项目的settings.py 文件中更改它。

settings.py

APPEND_SLASH = False

默认值为True

docs

【讨论】:

  • 你能分享一下建议保留斜杠原样的确切资源吗?
猜你喜欢
  • 2016-01-10
  • 2014-06-21
  • 2012-07-01
  • 2017-05-03
  • 1970-01-01
  • 2019-03-28
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多