gpt4 book ai didi

子路径的 Django 错误 url 模式

转载 作者:行者123 更新时间:2023-12-05 05:16:49 27 4
gpt4 key购买 nike

我真的不知道如何解释我的问题。我想做的是以下内容。

我的管理员将我的 Django 服务器地址 192.168.2.1:8001 链接到一个网址:devel.genesilico.pl/modomics 以公开该网站,否则只能在我们的本地网络上看到。

如果我访问该地址,我会看到没有静态文件的站点主页,如果我尝试访问另一个页面,该地址将更改为:

devel.genesilico.pl/modifications

因此删除了 modomics 前缀路径,它找不到该页面。

我认为更改我的 URLs.py 在所有这些之前添加 modomics 会解决这个问题,但没有。在这一点上,Django 的 DEBUG 向我展示了这一点(附照片)。在这种情况下,前缀“modomics”也被删除了。

我不知道该怎么办。我不知道这个问题是由 Django 引起的还是由我的管理员给我的网址设置引起的。

enter image description here

请注意,我仅针对应用修改进行测试。

这是我的主要 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'),
]

最佳答案

看来您需要将应用程序配置为在子文件夹上运行。

发生的事情是 reverse 函数正在生成根目录 / 的相对 URL,而不是 /modomics,因为您的服务器是'意识到它的托管方式不同。

有两种方法可以解决这个问题:

  1. 在settings.py中,你可以设置FORCE_SCRIPT_NAME = '/modomics' 以正确生成 URL,或者

  2. 让您的管理员将 /modomics 作为标题 X-Script-Name 的值传递并在 wsgi.py 中处理它> - see this related answer

第一个解决方案的缺点是您需要使用 one of the settings file patterns for deployment 确保您的网站配置为在开发和生产中以不同方式运行,如果子文件夹发生变化,您需要与管理员协调。

关于子路径的 Django 错误 url 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50038009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com