django - Django 没有将斜杠附加到管理 URL
问题描述
我在项目的后端使用 Django,在前端使用 React。因此,我必须指定一个提供 index.html 的后备 URL,其中包含我所有前端代码的脚本。
但是我希望 Django 匹配admin
和admin/
. 下面的正则表达式解决了这个问题,但访问admin
不会附加斜杠(我在设置中将 APPEND_SLASH 设置为 True)。结果是难看的 url,adminapis
而不是admin/apis
当我使用管理界面时。
知道如何保留斜杠吗?
urlpatterns = [
re_path(r"admin/?", admin.site.urls),
path("", include("api.urls", namespace="api")),
re_path(r".*", TemplateView.as_view(template_name="index.html")),
]
解决方案
您的 url 模式应该是r"admin/"
,不带问号,即强制使用斜杠。
然后在你的 settings.py 中验证
- 没有(
APPEND_SLASH=False
你想要默认值True
) - 并且您
'django.middleware.common.CommonMiddleware'
在MIDDLEWARE
元组中拥有(需要APPEND_SLASH
)。
现在,当您输入 url 时[…]/admin
,将自动添加一个斜杠。
如果不删除问号,django 将不会添加尾部斜杠,因为没有它的 url 是有效的。
推荐阅读
- php - 带有空格的 JSON 键的问题
- node.js - FFMPEG m3u8 编码将 TS 文件的扩展名更改为其他内容
- javascript - 页面重新加载时未命中更改功能
- javascript - analyticsDataClient.runReport 在从 GA 查询时返回 null
- javascript - 二进制人类可读到实际大小
- javascript - 如何在 discord.js 上使机器人前缀不区分大小写?
- haskell - Haskell Lens:棱镜
- python - 如何在保留用户站点包的同时避免在 Python 的 sys.path 中有当前目录?
- ios - Swift - 如何确定我的应用程序消耗的数据量(蜂窝/WiFi)?
- symfony - Sass 加载器无法使用 Encore webpack 和 Symfony 5 加载 url