[英]Why am I getting a 404 error when trying to access my website's domain name, yet if I domain name/home it works?
好吧...讓我們嘗試清楚地解釋一下。 我使用Python Django創建了動態網頁/網絡應用。 完成網站后,我已使用DigitalOcean發布了該網站,並將我購買的域名成功附加到DigitalOcean的名稱服務器上。 當我訪問我的網站ordinanceservices.com時,出現錯誤404。 但是,如果我鍵入ordinanceservices.com/home,它將正常運行並顯示主頁。 如何通過編輯python文件,將其保存到ordinanceservices.com將顯示主頁而不是錯誤404的位置? 我覺得我正在執行的某些操作從根本上來說對我的.urls結構是錯誤的,因此不需要在nginx配置中進行重寫/重定向。
這是具體的錯誤:
找不到頁面(404)
請求方法:GET
要求網址: http : //ordinanceservices.com/
Django使用django_project.urls中定義的URLconf,按以下順序嘗試了以下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')),
)
/公司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')
我的目標是編輯我的Python文件的url和視圖結構,以確保常規URL ordinanceservices.com實際上將顯示一個URL,而無需使用nginx配置文件來重定向主URL。頁; 最好是我網頁的首頁。
我有一個預感,這與我沒有r'^ admin /'可以到達的views.index有關。 我不確定,但已經嘗試了好幾個小時了。 有人知道我能做什么來解決這個問題嗎?
您尚未在根URL上定義任何內容。 在公司的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'),
]
首先,檢查您是否在settings.py中將www.yourdomain.com或yourdomain.com添加到ALLOWED_HOST = ['www.yourdomain.com','yourdomain.com']
然后在您的公司/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')),
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.