Проблемы с подключением react-django, 500 внутренних ошибок сервера
Я работаю над проектом, используя react в качестве фронтенда и Django rest api в качестве бэкенда. К сожалению, у меня возникли некоторые проблемы. Вот с какими проблемами я столкнулся:
В файле Django setting.py я установил папку static directory на "build" (для css, изображений и JavaScript) и папку media (для загруженных пользователем файлов) на "media", как показано ниже. Но я заметил, что в структуре каталогов отображается только папка "media", а не папка "build". ПОЖАЛУЙСТА, ЧТО МОЖЕТ ПРЕПЯТСТВОВАТЬ ОТОБРАЖЕНИЮ ПАПКИ "BUILD"?
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'build/static') ]
STATIC_ROOT = os.path.join(BASE_DIR, 'static') MEDIA_URL = '/medial/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Я понимаю, что обычно, когда вы запускаете "npm build" и копируете папку сборки, созданную во фронтенде, на место той, что в бэкенде Django, то вы можете начать использовать "localhost:8000" для доступа к вашим страницам, а не продолжать использовать "localhost:3000". Я сделал все вышеописанное, но я не смог загрузить страницы, используя "localhost:8000", а вместо этого получил 404 ошибку. ПОЖАЛУЙСТА, В ЧЕМ МОГУТ БЫТЬ ПРОБЛЕМЫ?
Я создал несколько маршрутов (post и get), протестировал все маршруты в postman и в браузере, и все они (маршруты) работают отлично. Однако, когда я запускаю их из react frontend, они не работают. Под этим я подразумеваю, что данные не отправляются в базу данных (для маршрутов post), а также не отображаются на веб-странице (для маршрутов get). Странно, но один из post-маршрутов работает (то есть отправляет данные в базу данных) из react frontend. Меня беспокоит, почему остальные маршруты (post и get) не работают, и нет никакого сообщения об ошибке, кроме расплывчатого "500 internal server error" из консоли. Я использую примерно ту же логику кода практически для всех маршрутов в файле "views.py", а также из файлов react frontend. Вот файл views.py для единственного работающего маршрута (т.е. из react frontend):
.- class CreateContactView(APIView):
-
permission_classes = (permissions.AllowAny, )
-
def post(self, request, format=None):
-
data = self.request.data
-
try:
-
contact = Contact(
-
name=data['name'], email=data['email'], phone=data['phone'], subject=data['subject'], message=data['message'])
-
contact.save()
-
return Response({'success': 'Message sent successfully'})
-
except:
-
return Response({'error': 'Message failed to send'})
и вот один из других не работает. Однако они имеют одинаковую логику кода
class PartnerCreate(APIView):
permission_classes = (permissions.AllowAny, )
def post(self, request, format=None):
data = self.request.data
try:
partners = Partners(
name=data['name'], email=data['email'], phone=data['phone'],
gendar=data['gendar'], area_spec=data['area_spec'], year_exp=['year_exp'], passport=['passport'], profile=['profile'])
partners.save()
return Response({'success': 'Registration successful'})
except:
return Response({'error': 'Something went wrong'})
Я ПОДНЯЛ 4 ВОПРОСА, ПОЖАЛУЙСТА, МОЖЕТ ЛИ КТО-НИБУДЬ ПОМОЧЬ МНЕ ВЫЯСНИТЬ, ЧТО НЕ ТАК? Спасибо всем.