我的URLconf有:
url(r'^view-item$', 'appname.views.view_item', name='view-item'),
现在,如果我转到http://myhost/path_to_django_app/view-item/
,它就可以了。但是,{% url view-item %}
会返回'/ view-item /'。为什么要这样做?
当我将应用程序移动到新服务器时出现此问题,因此我猜测必须配置错误的内容,但我甚至不知道在哪里查看。
答案 0 :(得分:2)
在django中编写URl的常用方法是使用尾随'/':
url(r'^view-item/$', 'appname.views.view_item', name='view-item')
或:
url(r'^view-item/', include('view.urls')),
如果你遵循这个惯例,生活会更容易。
答案 1 :(得分:1)
这可能是由于SCRIPT_NAME
变量未正确设置。 url
标签将使用此变量组成要返回的最终绝对路径。
您应该检查一个视图中设置的request.META['SCRIPT_NAME']
。如果设置不正确,则可能需要查看后端配置。如果您使用mod_python,这通常涉及确保在apache配置中设置了django.root。查看more info的安装文档。
如果仍无法使其正常工作,可以尝试将其添加到settings.py:
FORCE_SCRIPT_NAME = '/path_to_django_app/'