停止将HTML hrefs连接到地址栏

问题描述 投票:0回答:3

我有一个带有一些按钮的btn-group,每个按钮都将指向不同的页面。 btn-group将在每一页上可见。

这里是btn-group的html,


        <div class="btn-group-lg text-center" role="group" aria-label="Basic example">

            <a class="btn btn-outline-primary" href="" role="button">Home</a>
            <a class="btn btn-outline-primary" href="view_schedule/" role="button">Schedule</a>
            <a class="btn btn-outline-primary" href="view_syllabus/" role="button">Syllabus</a>
            <a class="btn btn-outline-primary" href="view_records/" role="button">Records</a>
            <a class="btn btn-outline-primary" href="view_achievements/" role="button">Achievements</a>
            <a class="btn btn-outline-primary" href="view_gallery/" role="button">Gallery</a>
            <a class="btn btn-outline-primary" href="view_contact/" role="button">Contact</a>
            <a class="btn btn-outline-primary" href="about/" role="button">About Us</a>

        </div>

但是每当我按下按钮时,它都会修改地址栏中的URL。示例:-从http://127.0.0.1:8000/shotokankaratebd/,如果我按下“排定”按钮,它将URL更改为http://127.0.0.1:8000/shotokankaratebd/view_schedule

此后,如果我再次按下计划按钮,它将其更改为http://127.0.0.1:8000/shotokankaratebd/view_schedule/view_schedule,这是一个无效的URL,并且我得到一个错误。

如何编写它,以便每当按下按钮时,仅影响http://127.0.0.1:8000/shotokankaratebd/之后的部分?

已编辑,包括新的href:


            <a class="btn btn-outline-primary" href="../shotokankaratebd/" role="button">Home</a>
            <a class="btn btn-outline-primary" href="../shotokankaratebd/view_schedule/" role="button">Schedule</a>
            <a class="btn btn-outline-primary" href="../shotokankaratebd/view_syllabus/" role="button">Syllabus</a>
            <a class="btn btn-outline-primary" href="../shotokankaratebd/view_records/" role="button">Records</a>
            <a class="btn btn-outline-primary" href="../shotokankaratebd/view_achievements/" role="button">Achievements</a>
            <a class="btn btn-outline-primary" href="../shotokankaratebd/view_gallery/" role="button">Gallery</a>
            <a class="btn btn-outline-primary" href="../shotokankaratebd/view_contact/" role="button">Contact</a>
            <a class="btn btn-outline-primary" href="../shotokankaratebd/about/" role="button">About Us</a>

javascript html css django twitter-bootstrap
3个回答
1
投票

您不应该对网址进行硬编码。使用django's url template tag来获取您的视图的网址。


1
投票

如果您的URL指向另一个视图或另一个应用程序的视图,则应使用使用动态URL的django功能。

例如,如果您有视图view_schedule,则应在urls.py中为其命名,例如

urlpatterns = [
...
path('shotokankaratebd/view_schedule/', views.name_of_your_view, name=view_schedule),
...
]

以及任何时候和任何模板,如果要访问此视图,都可以键入

template.html

<a href="{% url 'view_schedule' %}"><button>Schedule</button></a>

而不是

 class="btn btn-outline-primary" href="/shotokankaratebd/view_schedule/" role="button">Schedule</a>

像这样硬编码。


0
投票

已解决。我所需要做的就是以/开头我的hrefs,它将在每次单击按钮后将URL重置为http://127.0.0.1:8000/

HTML按钮如下:

        <div class="btn-group-lg text-center" role="group" aria-label="Basic example">

            <a class="btn btn-outline-primary" href="/shotokankaratebd/" role="button">Home</a>
            <a class="btn btn-outline-primary" href="/shotokankaratebd/view_schedule/" role="button">Schedule</a>
            <a class="btn btn-outline-primary" href="/shotokankaratebd/view_syllabus/" role="button">Syllabus</a>
            <a class="btn btn-outline-primary" href="/shotokankaratebd/view_records/" role="button">Records</a>
            <a class="btn btn-outline-primary" href="/shotokankaratebd/view_achievements/" role="button">Achievements</a>
            <a class="btn btn-outline-primary" href="/shotokankaratebd/view_gallery/" role="button">Gallery</a>
            <a class="btn btn-outline-primary" href="/shotokankaratebd/view_contact/" role="button">Contact</a>
            <a class="btn btn-outline-primary" href="/shotokankaratebd/about/" role="button">About Us</a>

        </div>
© www.soinside.com 2019 - 2024. All rights reserved.