Приложение Django-React не находит файл manifest.json

Я работаю над системой на основе Django + React. Уже некоторое время я сталкиваюсь с ошибкой manifest not found. На фронтенд-странице вообще ничего не отображается. Помогите найти первопричину.

Я поделился изображениями следующим образом: 1.) Изображение ошибки: введите описание изображения здесь. 2.) Изображение отлично работающей админки: enter image description here

Любая помощь будет очень признательна. Вот ссылка на мой github, где находятся файлы:https://github.com/FelixOmollo/FourthYearProject

Вот мой код навигационной панели:

import AuthContext from '../context/AuthContext'
import {useContext} from 'react'
import jwt_decode from "jwt-decode";




import { Link } from 'react-router-dom'

function Navbar() {

  const {user, logoutUser} = useContext(AuthContext)
  const token = localStorage.getItem("authTokens")

  if (token){
    const decoded = jwt_decode(token) 
    var user_id = decoded.user_id
  }

  return (
    <div>
      <nav class="navbar navbar-expand-lg navbar-dark fixed-top bg-dark">
        <div class="container-fluid">
          <a class="navbar-brand" href="#">
          <Navbar.Brand href='/'>SPORRMS</Navbar.Brand>
          </a>

          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
          </button>
          <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav ">
              <li class="nav-item">
                <a class="nav-link active" aria-current="page" href="/s">Home</a>
              </li>
              <li class="nav-item">
                  <Link class="nav-link" to="/about">About</Link>
              </li>
              {token === null && 
              <>
                <li class="nav-item">
                  <Link class="nav-link" to="/login">Login</Link>
                </li>
                <li class="nav-item">
                  <Link class="nav-link" to="/register">Register</Link>
                </li>
              </>
              }

            {token !== null && 
              <>
                <li class="nav-item">
                  <a class="nav-link" href="/dashboard">Dashboard</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" onClick={logoutUser} style={{cursor:"pointer"}}>Logout</a>
                </li>
              </>
              }   
              
            </ul>
          </div>
        </div>
      </nav>
    </div>
  )
}

export default Navbar

Заранее спасибо.

Я ожидал, что фронтенд загрузится нормально. Я был до bur после добавления auth для проверки логинов и регистраций. Он перестал работать. Когда я удаляю auth и валидацию последних. Он загружается отлично.

Проблема :-

Твой settings.py

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'frontend/build'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]


STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'frontend/build/static'),
]

От index.html


      manifest.json provides metadata used when your web app is installed on a
      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
    -->
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <!--
      Notice the use of %PUBLIC_URL% in the tags above.
      It will be replaced with the URL of the `public` folder during the build.
      Only files inside the `public` folder can be referenced from the HTML.

      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
      work correctly both with client-side routing and a non-root public URL.
      Learn how to configure a non-root public URL by running `npm run build`.
    -->

Да, у вас есть href="%PUBLIC_URL%/manifest.json, но как django достигает этого публичного url?

Django не будет обслуживать статику в других местах, кроме frontend/build/static'.

Ответ:

  1. используйте папку django static (frontend/build/static'), переместите в нее манифест и используйте тег шаблона django static для его обслуживания. (eazy)

Или

  1. Запишите определенный url в urls.py для файла манифеста. (жестко)
Вернуться на верх