У меня есть проект, который использует Angular и Django, и я испытываю странное поведение, когда тестирую свое приложение с помощью StaticLiveServerTestCase и Selenium.
Когда я начинаю тестировать, кажется, что все работает, но если я обновляю главную страницу, я получаю 404. Итак, если я тестирую без базового URL-адреса, он работает, но как только Angular добавляет базовый URL-адрес, тест возвращает 404: http://127.0.0.1:8000/проект/разработка/тест
Базовый URL-адрес, определенный в Angular в index.html:
Мой URL определяется следующим образом: re_path('тест', views.index, имя='индекс')
Итак, подводя итог, когда я тестирую http://127.0.0.1:8000/тест, он работает, но если я тестирую http://127.0.0.1:8000/проект/разработка/тест, он не работает - если я нормально запускаю свое приложение, оба URL-адреса работают.
Согласно моим знаниям новичка и поскольку шаблон URL-адреса определен, оба URL-адреса должны работать. Очевидно, я упускаю что-то еще.
Заранее спасибо.
Примечание. Тестовый класс, если он определен следующим образом:
class Tests(StaticLiveServerTestCase):
def set_chrome_options(cls):
options = Options()
options.add_experimental_option("useAutomationExtension", False)
return options
@classmethod
def setUpClass(cls):
cls.host = "127.0.0.1"
cls.port = 8000
super(Tests, cls).setUpClass()
cls.selenium = webdriver.Chrome(executable_path=settings.DRIVER_PATH, options=cls.set_chrome_options(cls))
...
Что касается URL-шаблонов:
urlpatterns = [
path('', views.index, name='home'),
re_path('test', views.index, name='index'),
path('project', views.index, name='index'),
...
Я попытался добавить больше деталей к своему вопросу, извините, я не могу поделиться всеми подробностями, так как это частный проект.
Вы должны показать полную трассировку 404. Это поможет увидеть, какие шаблоны были опробованы. Обычно с этим re_path любой URL-адрес, содержащий «тест», должен совпадать и возвращать представление индекса.
Это часть проблемы, следов нет... даже django/core/handlers/base.py не вызывается. Я просто получаю грустное: «Не найдено. Запрошенный URL-адрес /project/development/test не найден на этом сервере».






Покажите нам свой urls.py. Должен быть путь как для /baseURL/test, так и для /test. Что такое базовый URL?