为什么我在尝试访问我的网站的域名时收到404错误,但是如果我的域名/家庭有效,我会这样做?

时间:2017-07-12 23:01:25

标签: python django web django-models django-views

好的......让我们试着清楚地解释一下。我使用Python Django来创建动态网页/网络应用程序。完成网站后,我使用DigitalOcean发布了它,并成功将我购买的域名附加到DigitalOcean的名称服务器上。当我访问我的网站ordinanceservices.com时,我收到错误404;但是,如果我键入ordinanceservices.com/home,它将按预期工作并显示主页。如何,通过编辑python文件,我可以将它带到ordinanceservices.com将显示主页而不是错误404的位置?我觉得我正在做的事情对于我的.urls结构来说根本就是错误的,因此不需要在nginx配置中重写/重定向。

以下是具体错误:

找不到页面(404)

请求方法:GET

请求网址:http://ordinanceservices.com/

使用django_project.urls中定义的URLconf,Django按以下顺序尝试了这些URL模式:

^管理员/

^ ^ home / [name ='home']

^ ^ contact / [name ='contact']

^ ^ services / [name ='services']

当前网址与其中任何一个都不匹配。

我有点理解这里发生了什么,虽然我不知道如何解决这个问题。接下来,我将为包含以下内容的每个文件夹提供我的.urls文件:

/ django_project urls.py

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',


    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('company.urls')),
)

/ company urls.py

from django.conf.urls import url, include
from . import views

urlpatterns = [
    url(r'^home/', views.home, name='home'),
    url(r'^contact/', views.contact, name='contact'),
    url(r'^services/', views.services, name='services'),

]

/ company views.py

from django.shortcuts import render

def home(request):
    return render(request, 'company/home.html')

def contact(request):
    return render(request, 'company/contact.html')

def services(request):
    return render(request, 'company/services.html')

我的目标是,无需使用nginx配置文件重定向主URL,就是编辑我的网址和我的Python文件的结构,以确保正常的网址,即ordinanceservices.com,实际上显示一个页面;最好是我网页的主页。

我有一种预感,它与我没有用于r'^ admin /'的views.index达到的事实有关。我不确定,但我一直试图弄清楚这几个小时。有没有人知道我能做些什么来解决这个问题?

2 个答案:

答案 0 :(得分:3)

您尚未在根网址上定义任何内容。再向您的公司添加一行urls.py,使其成为

//company urls.py
from django.conf.urls import url, include
from . import views

urlpatterns = [
    url(r'^$', views.home, name='home'),
    url(r'^home/', views.home, name='home'),
    url(r'^contact/', views.contact, name='contact'),
    url(r'^services/', views.services, name='services'),

]

答案 1 :(得分:0)

首先,检查您是否已将 www.yourdomain.com yourdomain.com 添加到ALLOWED_HOST = ['www.yourdomain.com','yourdomain。你的 settings.py

中的com']

然后在 company / urls.py 中执行此操作

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.home, name='home'),
    url(r'^contact/$', views.contact, name='contact'),
    url(r'^services/$', views.services, name='services'),

]

并在您的主 urls.py 中添加此代码

from django.conf.urls import url,include
from django.contrib import admin
admin.autodiscover()

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('company.urls')),
]