gpt4 book ai didi

django - Apache | Django : How to run websites on the back of a base URL?

转载 作者:行者123 更新时间:2023-12-02 03:41:27 25 4
gpt4 key购买 nike

我有一个基本网址。 http://baseurl.com/我正在尝试在其背后运行项目。例如 http://baseurl.com/mongoose/项目运行但 URL 无法正常工作,因为它们都引用基本网址。因此,对于“关于我”页面,它指向 http://baseurl.com/about而不是http://baseurl.com/mongoose/about

这是我需要在 django 或 apache 中更改的内容吗?我就是这样尝试做一些可能的事?

来自 IIS .net 背景,我知道在 IIS 中,您可以在站点内“创建和应用程序”,这基本上实现了我现在试图使用 Apache 和 Django 实现的目标。

谢谢

最佳答案

您不需要做任何事情。 Apache 应该设置一个名为 SCRIPT_NAME 的请求 header ,这是您的基本 URL,所有 URL 反转都会考虑到这一点。

您如何在模板中创建这些 URL?

更新

所以你的问题是获取 Flatpages 的 URL。问题是动态计算 URL 的正常方法,以便它们确实考虑 SCRIPT_NAME - 使用 reverse() 函数或 {% url % } 标签 - 不适用于 Flatpages,因为它们不是通过 urls.py 调度的,而是通过在 404 上触发的自定义中间件调度的。

因此,我不会使用该中间件,而是使用 urls.py 机制来分派(dispatch)到平面页面。从 settings.py 中删除 flatpagemiddleware,并在 urls.py 模式末尾添加以下内容:

url(r'^(?P<url>.*)$', 'django.contrib.flatpages.views.flatpage', name='flatpage'), 

现在,在您的模板中,您可以执行以下操作:

<a href="{% url flatpage page.url %}">

它应该可以正常工作。

关于django - Apache | Django : How to run websites on the back of a base URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4447500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com