Next.js getServerSideProps выдает 404 только на производстве

Я воспроизвел проблему в самой простой форме:

начнем с бэкенда:

#models.py
from django.db import models
from django.template.defaultfilters import slugify  # new


class Article(models.Model):
    slug = models.SlugField(primary_key=True,unique=True)
    title = models.CharField(max_length=200)
    description = models.TextField()

    def save(self,*args,**kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
            super().save(*args,**kwargs)
    

#views.py

from django.shortcuts import render

from rest_framework.viewsets import ModelViewSet
from rest_framework.response import Response

from app import models
from app import serializer


class ArticleView(ModelViewSet):
    serializer_class = serializer.ArticleSerializer
    def get_queryset(self):
        return models.Article.objects.all()
    
    def post(self,request):
        data = serializer.ArticleSerializer(data=request.data)

        if data.is_valid():

            a = models.Article.objects.create(title=data['title'],description=data['description'])
            a.save()
            return Response("succes",status=200)
        return Response("fail",status=400)
#serializer.py

from rest_framework import serializers
from app import models



class ArticleSerializer(serializers.ModelSerializer):
    slug = serializers.SlugField(read_only=True)
    class Meta:
        fields = 'slug','title','description',
        model = models.Article


#settings.py


ALLOWED_HOSTS = ['localhost','127.0.0.1']
ACCESS_CONTROL_ALLOW_ORIGIN = '*'
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
ACCESS_CONTROL_ALLOW_CREDENTIALS = True
ACCESS_CONTROL_ALLOW_METHODS = '*'
ACCESS_CONTROL_ALLOW_HEADERS = '*'



# Application definition

INSTALLED_APPS = [
    'app',
    'rest_framework',
    'corsheaders',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    "corsheaders.middleware.CorsMiddleware",
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

Я предоставил все, что связано с бэкендом

Теперь на следующей стороне js:

я получил следующее (внутри папки pages):

enter image description here

а внутри [slug].js

код выглядит следующим образом

import axios from 'axios'


export async function getServerSideProps({params}){
    try{
    let res = await axios.get(`https://somehost.com/articles/${params.slug}/`)
    let data = res.data
    return {
        props:{data:data}
    }
}
   catch(e){
    return {
        props:{}
    }
   }
}

export default function Component({data}){

    if(data){
        return<div>
            <div>{data.title}</div>
            <div>{data.description}</div>
        </div>
    }

}

я получаю это на производстве:

enter image description here

Что еще больше раздражает, так это то, что на вкладке network нет запроса, отправляемого на backend.

есть идеи?

EDIT: Я развертываю на Cloudflare НЕ VERCEL.

Вернуться на верх