这似乎在django中无效:
urlpatterns = [
url(r'^%s/admin/' %(BASE_PATH), include(admin.site.urls)),
url(r'^%s/$' %(BASE_PATH), home_view),
url(r'^%s/ping/$' %(BASE_PATH), ping),
url(r'^%s/echo/$' %(BASE_PATH), echo),
url(gcd_str, gcd),
]
如果我将BASE_PATH设置为' test'并转到http://host/test/echo我收到404错误,但我的路径在错误页面上显示如下:
^/test/admin/
^/test/$
^/test/ping/$
^/test/echo/$
^/test/gcd/$
如果我像这样硬编码就可以了:
urlpatterns = [
url(r'^test/admin/', include(admin.site.urls)),
url(r'^test/$', home_view),
url(r'^test/ping/$', ping),
url(r'^test/echo/$', echo),
]
我猜这个模式没有正确插值,如果我使用不带r
的字符串,它似乎行为相同。
答案 0 :(得分:1)
问题是您要将BASE_PATH
设置为
/test
当您进行硬编码时,您将其写为
test
起始/
会产生重大影响,因为url模式需要(根据BASE_PATH
是以
^/test/admin/
|| |
|| matches test
|matches /
matches start of the pattern