我已经建立了我的Django项目网站,这是一个迷宫生成器,有一个导航栏,按钮链接到我做的其他网页。
例如,样式页的目录只是/style,所以它会打开引用样式的页面,然后如果我单击导航栏上的主页按钮,它就会转到/home。
但是,当我进入单个迷宫页面(引用只是一个数字)时(例如,3),如果我单击navbar按钮回家而不是去http://127.0.0.1:8000/home,它就会尝试去不存在的http://127.0.0.1:8000/3/home。
有没有办法改变Django处理链接以删除前面目录的方式。
发布于 2021-09-10 04:18:23
假设正确设置了urls.py
,则可以使用{% url %}
模板标记,如下所示:
<a href="{% url 'urlname' %}">...</a>
Django将自动将其替换为名为urlname
的实际URL。要使其工作,您的urls.py
应该有如下所定义的路径:
path("some/url/here", views.my_view_function, name="urlname")
name
属性是这里的重要部分。
通过编写href="3"
,您只是告诉浏览器查找https://example.com/whatever/the/current/url/is/3
,换句话说,它相对于当前位置。
要使其绝对有效,您必须从/
开始(这将使URL相对于当前域,例如,href="3"
将导致https://example.com/3
),或者完整地写入URL,包括https://example.com/
部分,这将导致指向的准确位置。
Django在使用{% url %}
标记时会自动处理这个问题。
https://stackoverflow.com/questions/69131174
复制相似问题