所以应该有一个非常基本的方法来做到这一点,但不幸的是我似乎无法找到它。
如何将Href链接设置为指向“基本网站网址”+“链接”,而不是将链接添加到当前页面。
即。如果我在www.example.com/content1 /
我希望搜索功能转到www.example.com/search/
而不是www.example.com/content1/search
我可以指定“www.example.com/search/”但是如果它在本地部署页面,我最终会得到一堆链接到不存在的页面,反之亦然。如何使用DJango指定The Base托管URL(无论服务器正在运行,主机名,当前服务器IP,本地主机等)。
答案 0 :(得分:3)
执行此操作的最佳方法是name your urls,然后使用url template tag。示例如下:
首先,为您的观点命名。使用类似的东西:
urlpatterns = [
...
url(r'^search/$', views.search_view, name="search"),
...
]
在此示例中,您已获得example.com/search/
视图的网址。它被命名为“搜索”,可以使用url
模板标记并使用reverse()
函数。
接下来,在您的模板中,使用您的网址名称为url
标记:
<a href="{% url 'search' %}">Search</a>
答案 1 :(得分:1)
您不应该添加基本网址网址。对你的href来说,暗示着。确保href的前缀为&#39; /&#39;设置和绝对路径,没有&#39; /&#39;为亲戚。
<a href="/">home</a>
与
相同 <a href="http://www.mywebsite.com/">home</a>
并且无论你在哪个子目录中都可以使用
如果您在主页上并使用以下链接:
<a href="sample">sample</a>
它实际上会相等:
<a href="http://www.mywebsite.com/sample">sample</a>
但页面http://www.mywebsite.com/sample上使用的相同链接将等同于:
<a href="http://www.mywebsite.com/sample/sample">sample</a>
使用:
<a href="/sample">sample</a>
无论在网站的哪个位置使用,都将始终等同于以下内容:
<a href="http://www.mywebsite.com/sample">sample</a>
如果您使用django,请考虑使用建议Alex的网址模板标记:
https://docs.djangoproject.com/en/dev/ref/templates/builtins/#url
答案 2 :(得分:0)
将链接指向/search
。
以/
开头的任何链接都与域根相关(例如,http://example.com/
),而任何其他相对链接都与当前网址相关。