我有一个基本网址。 http://baseurl.com/ 我正试图在它背面运行项目。例如 http://baseurl.com/mongoose/ 项目运行但URL无法正常运行,因为它们都是 引用基本网址。因此,对于“关于我”页面,它指向 http://baseurl.com/about代替http://baseurl.com/mongoose/about
这是我需要在django或apache中改变的吗?是我的意思 试图做甚至可能?
来自IIS .net背景我知道在IIS中你可以在一个站点内“创建和应用”,这实际上是我现在用Apache和Django实现的。
谢谢
答案 0 :(得分:1)
你不需要做任何事情。 Apache应该设置一个名为SCRIPT_NAME
的请求标头,这是您的基本URL,所有URL反转都会考虑到这一点。
您如何在模板中创建这些网址?
更新
所以你的问题是获取Flatpages的URL。问题在于,动态计算网址的常规方式是使用SCRIPT_NAME
函数或reverse()
标记将{% url %}
考虑在内,因此无法使用Flatpages,因为它们不是通过urls.py发送的,而是通过在404上触发的自定义中间件发送的。
因此,我不使用该中间件,而是使用urls.py机制调度到flatpages。从settings.py中删除flatpagemiddleware,在模式末尾的urls.py 中删除添加:
url(r'^(?P<url>.*)$', 'django.contrib.flatpages.views.flatpage', name='flatpage'),
现在,在您的模板中,您可以执行以下操作:
<a href="{% url flatpage page.url %}">
它应该可以正常工作。
答案 1 :(得分:0)
检查项目中的任何urls.py
,看看他们是否期望成为顶级。但是如果应用程序输出像/something
这样的链接,那么它就意味着根目录。应用程序应该将视图/参数反转为URL,这将允许您移动它。如果您编写了应用,请查看reverse
django.core.urlresolvers