Страница не найдена (404) Метод запроса: GET URL запроса: http://18.222.182.68/index.html Использование URLconf, определенного
Моя главная страница загружается нормально, но когда я нажимаю на кнопку, которая должна перевести меня на index.html, я получаю ошибку, описанную ниже. При локальном запуске все работает нормально, но при деплое на AWS (EC2, с использованием nginx и gunicorn) все не работает и выдает ошибку ниже. Я новичок в использовании django и AWS, любой отзыв будет оценен по достоинству.
ошибка:
Request Method: GET
Request URL: http://18.222.182.68/index.html
Using the URLconf defined in LectureLingo.urls, Django tried these URL patterns, in this order:
[name='index']
admin/
The current path, index.html, didn’t match any of these.
You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
кодviews.py
def index_view(request):
return render(request, 'index.html')
кодurls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index_view, name='home'),
path('index/', views.index_view, name='index'),
]
Основной код urls.py
from django.conf.urls import include
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('', include('transcript.urls')),
path('admin/', admin.site.urls),
]
index.html код
{% load static %}<!DOCTYPE html>
<html>
<head>
<title>Chat</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<link rel="stylesheet" href="{% static 'indexstyles.css' %}">
</head>
<body>
<p id="status">Connection status will go here</p>
<div class="custom-tooltip" style="display:none;"></div>
<p id="transcript"></p>
<script src="{% static 'IndexJS.js' %}"></script>
</body>
</html>
Главный html:
{% load static %}<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="{% static 'homestyles.css' %}">
<title>Home Page</title>
</head>
<body>
<div class="text">LectureLingo</div>
<div class="container">
<div class="dropdown-container">
<div class="dropdown-label">
<div class="label">Translate from:</div>
<select class="dropdown" id="dropdown1" required>
<option value="" disabled selected hidden>Select...</option>
<option value="cs">Czech</option>
</select>
</div>
<div class="dropdown-label">
<div class="label">Translate To:</div>
<select class="dropdown" id="dropdown2" required>
<option value="" disabled selected hidden>Select...</option>
<option value="af">Afrikaans</option>
</select>
</div>
</div>
<button id="sendButton" onclick="checkDropdowns()">Start</button>
</div>
<script src="{% static 'homeJS.js' %}"></script>
</body>
</html>
Основной Javascript (только кнопка):
document.querySelector('#sendButton').onclick = function() {
// Check if both dropdowns have selections
var dropdownFrom = document.getElementById('dropdown1').value;
var dropdownTo = document.getElementById('dropdown2').value;
if (dropdownFrom !== "" && dropdownTo !== "") {
// Send data through WebSocket
websocket.send(JSON.stringify({
'dropdown1': dropdownFrom,
'dropdown2': dropdownTo
}));
localStorage.setItem('detectedLanguage', dropdownTo);
window.location.href = 'index.html';
} else {
alert('Please select options from both dropdowns.');
}
};
Проблема с моим кодом заключалась в том, что я запрашивал index.html
, когда следовало index/
. Я постоянно обновлял его, но это так и не решило проблему.
Это было связано с тем, что мой браузер кэшировал мои файлы, поэтому все изменения, которые я делал, не отражались. Это можно легко исправить, выполнив ctr + f5
на edge и chrome.