【问题标题】:Site name appearing in django URLs出现在 django URL 中的站点名称
【发布时间】:2011-01-16 04:37:12
【问题描述】:

我遇到了一个问题,在 Django 中调用 url 模板标签会附加站点名称(我不希望它在那里。)

假设站点名称是“mysite”。

例如:

<a href="{% url myapp.views.myview "myparam" %}">Link text</a>

正在生产:

<a href="/mysite/foo/bar">Link text</a>

当我希望它产生时:

<a href="/foo/bar">Link text</a>

我的 urls.py 是这样设置的:

from django.conf.urls.defaults import *
import mysite.myapp.views

urlpatterns = patterns('',
    (r'^/foo/bar/$', 'mysite.myapp.views.myview'),
)

谁能指出我正确的方向?

编辑 - 当网站处于开发阶段时,它位于测试服务器的子目录中,应用程序作为子目录!所以它坐在http://www.mytestserver.com/mysite 上。没有缓存,所有对 /mysite 的引用在上线之前都被删除了。

【问题讨论】:

  • 当你在 Django 的管理界面中管理站点时,你会看到什么?
  • @domonic,我只看到了 example.com/。

标签: python django url django-urls


【解决方案1】:

你确定这是渲染的版本吗? Docs 说,应该生成一个绝对 url,即 /mysite/foo/bar。您是否在浏览器中检查源?尝试打印出render_to_string(或您正在使用的其他渲染功能)的结果并检查是否也添加了example.com。

【讨论】:

  • 你说的很对,为了清楚起见,我已经编辑了我的问题。感谢您的回复。
  • 我真的不知道,发生了什么事。我得看一下代码。
  • 对了,为什么在urls.py中导入import mysite.myapp.views?您不必这样做。
  • 好的,谢谢你的提示。大概是因为我将它作为字符串传递,而不是直接传递视图?
  • 是的,你只需要导入,如果你引用导入的名称。如果你把一些东西放到一个字符串中,你并没有真正引用它。
【解决方案2】:

检查你的 modpython 配置,如果你有的话。可能有一行看起来像PythonOption django.root /mysite 删除它。

【讨论】:

  • 啊哈——这很可能是罪魁祸首。谢谢!
  • 很好,我也会记住这可能发生的:-)
猜你喜欢
  • 2021-02-09
  • 2017-10-19
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
  • 2013-03-03
  • 2012-12-20
相关资源
最近更新 更多