Приложение 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'
.
Ответ:
- используйте папку django static (
frontend/build/static'
), переместите в нее манифест и используйте тег шаблона django static для его обслуживания. (eazy)
Или
- Запишите определенный url в urls.py для файла манифеста. (жестко)