子路径的 Django 错误 url 模式
Django wrong url pattern for subpath
我真的不知道如何解释好我的问题。
我想做的是以下内容。
我的管理员将我的 Django 服务器地址 192.168.2.1:8001 链接到一个网址:devel.genesilico.pl/modomics 使 public 这个网站只能在我们的网站上看到本地网络。
如果我访问该地址,我会看到我网站的主页没有静态文件,如果我尝试访问另一个页面,该地址将更改为:
devel.genesilico.pl/modifications
所以删除了modomics前缀路径,它找不到该页面。
我认为改变我的 URLs.py 在他们面前添加 modomics 会解决这个问题,但没有。在这一点上,Django 的 DEBUG 向我展示了这个(附照片)。在这种情况下,前缀 "modomics" 也被删除了。
我不知道该怎么办。我不知道这个问题是 Django 引起的还是我的管理员给我的网址设置引起的。
请注意,我只是针对应用修改进行测试。
这里是我的主要urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('core.urls')),
url(r'^', include('modifications.urls')),
url(r'^', include('sequences.urls')),
url(r'^', include('pathways.urls')),]
此处 urls.py 用于应用修改:
urlpatterns = [
url(r'^modomics/modifications$', views.modlist, name='modlist'),
url(r'^modomics/modifications/(?P<mod_name>.+)/$', views.moddescription, name='moddescription'),
]
您似乎需要在 sub-folder 上将您的应用程序配置为 运行。
发生的事情是 reverse
函数正在生成根目录 /
的相对 URL,而不是 /modomics
,因为您的服务器不知道它的托管方式不同。
有两种方法可以解决这个问题:
在settings.py中,您可以设置FORCE_SCRIPT_NAME
= '/modomics'
来正确生成URL,或者
让您的管理员将 /modomics
作为 header X-Script-Name
的值传递并在 wsgi.py
- see this related answer[ 中处理它=21=]
第一个解决方案的缺点是您需要确保您的网站配置为 运行 在开发和生产中使用 one of the settings file patterns for deployment 不同,并且您需要与管理员协调如果子文件夹发生变化。
我真的不知道如何解释好我的问题。 我想做的是以下内容。
我的管理员将我的 Django 服务器地址 192.168.2.1:8001 链接到一个网址:devel.genesilico.pl/modomics 使 public 这个网站只能在我们的网站上看到本地网络。
如果我访问该地址,我会看到我网站的主页没有静态文件,如果我尝试访问另一个页面,该地址将更改为:
devel.genesilico.pl/modifications
所以删除了modomics前缀路径,它找不到该页面。
我认为改变我的 URLs.py 在他们面前添加 modomics 会解决这个问题,但没有。在这一点上,Django 的 DEBUG 向我展示了这个(附照片)。在这种情况下,前缀 "modomics" 也被删除了。
我不知道该怎么办。我不知道这个问题是 Django 引起的还是我的管理员给我的网址设置引起的。
请注意,我只是针对应用修改进行测试。
这里是我的主要urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('core.urls')),
url(r'^', include('modifications.urls')),
url(r'^', include('sequences.urls')),
url(r'^', include('pathways.urls')),]
此处 urls.py 用于应用修改:
urlpatterns = [
url(r'^modomics/modifications$', views.modlist, name='modlist'),
url(r'^modomics/modifications/(?P<mod_name>.+)/$', views.moddescription, name='moddescription'),
]
您似乎需要在 sub-folder 上将您的应用程序配置为 运行。
发生的事情是 reverse
函数正在生成根目录 /
的相对 URL,而不是 /modomics
,因为您的服务器不知道它的托管方式不同。
有两种方法可以解决这个问题:
在settings.py中,您可以设置
FORCE_SCRIPT_NAME
='/modomics'
来正确生成URL,或者让您的管理员将
/modomics
作为 headerX-Script-Name
的值传递并在wsgi.py
- see this related answer[ 中处理它=21=]
第一个解决方案的缺点是您需要确保您的网站配置为 运行 在开发和生产中使用 one of the settings file patterns for deployment 不同,并且您需要与管理员协调如果子文件夹发生变化。