django url 配置 - 本地与 EC2 托管不一致

问题描述 投票:0回答:0

我有一个运行 Python 3.8.10 的 Django 2.2 应用程序。尝试研究和调试与 url 相关的令人困惑的问题。

基本上我们有

/org
网址:

from django.conf.urls import include, url
from django.urls import reverse_lazy
from django.views.generic.base import RedirectView

from . import views

urlpatterns = [
    url(r'^', include("project.urls")),
    url(r'^$', views.frontpage, name="frontpage"),
    url(r'^org/submit/$', views.org_create_new, name="org-create-new"),
    url(r'^org/(?P<slug>[-\w]+)$', views.org),

    # redirect traffic that doesn't match a url to root home
    url(r'^.*$', RedirectView.as_view(url=reverse_lazy('frontpage')), name='home'),
]

project
网址

from django.conf import settings
from django.conf.urls import include, url
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^accounts/', include('allauth.urls')),
    url(r'^manage/', include('management.urls')),
    url(r'^', include('users.urls')),
    url(r'^', include('common.urls')),
    url(r'^', include('products.urls')),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

此配置在本地运行良好,没有任何问题。但是,当我们部署应用程序(到 AWS EC2)时,

org.urls
management.urls
不起作用,但其余的 url 可以。可以访问 Django admin,
common.urls
users.urls
服务很好,但是例如对“首页”视图的 GET 请求只会返回
404 Not Found
。没有错误信息。

如果我进入 EC2 实例并运行

python manage.py show_urls
我看到所有的 url,包括返回 404 Not Found 的那些:

/   orgs.views.all.frontpage    frontpage
/.* django.views.generic.base.RedirectView  home

如果我进入服务器托管应用程序的 python shell,我还可以反转丢失的 url:

(InteractiveConsole)
>>> from django.urls import reverse
>>> reverse('frontpage')
'/'
>>> reverse('admin-dashboard')
'/manage/dashboard/'

为什么在发出请求时无法发现这些网址?我们的网址配置是否有错误?关于如何进一步调试的任何建议?谢谢

django django-urls
© www.soinside.com 2019 - 2024. All rights reserved.