【问题标题】:Why I am getting Django page not found error?为什么我收到 Django page not found 错误?
【发布时间】:2021-11-23 22:04:42
【问题描述】:

我不明白为什么我得到这个Page not found (404) Raised by:django.views.static.serve 这是我的代码:

应用视图.py:

class SESmail(TemplateView):
      template_name = 'mail/account_confirmation.html'

应用 urls.py

urlpatterns = [
    path('confirmmail/',SESmail.as_view(), name='confirmmail'),

  ]

根 urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
   #my others url....
    path('', include('sesmail.urls')),
    
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py:

INSTALLED_APPS = [ 
 ....
  'sesmail',
]


STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)

我不明白为什么会出现此错误?我在我的 settings.py 中添加了应用程序名称,并在应用程序 urls.py 和根 urls.py 中正确添加了 url 配置。我哪里做错了?

【问题讨论】:

  • MEDIA_ROOT 中的 settings.py 是什么
  • @mrash 感谢 mash 我被评论为我的媒体根目录。
  • 你使用MEDIA_ROOTMEDIA_URL。问题可能与此有关。你可以在根 urls.py 中加注释来测试这个效果。
  • @boyenec 这发生在本地服务器或生产服务器上

标签: python python-3.x django


【解决方案1】:

发生错误是因为我评论了我的媒体根目录

#MEDIA_URL = '/media/'
#MEDIA_ROOT =  os.path.join(BASE_DIR, 'media')

取消注释后问题解决。如果您在根 urls.py 中使用 +static(settings.STATIC_URL, document_root=settings.STATIC_URL),那么您可能会再次遇到此错误。添加settings.STATIC_ROOT 而不是使用settings.STATIC_URL

【讨论】:

    【解决方案2】:

    将您的应用 urls.py 更改为以下内容:

    urlpatterns = [
        path('',SESmail.as_view(), name='confirmmail'),
    
      ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 2016-01-21
      • 2020-05-17
      • 2021-01-02
      • 1970-01-01
      • 2021-11-05
      • 2020-02-29
      相关资源
      最近更新 更多