Получение серверной ошибки (500) при установке отладки на false из-за того, что манифест не включает css-файлы
У меня есть приложение, которое я создал, используя Django и React + Vite. Все работает нормально, когда Debug установлен на True, но как только я устанавливаю false, я получаю Server Error с консольным выводом:
ValueError: Missing staticfiles manifest entry for 'reactjs/inspector-B1mMLMX5.css'
Файл reactjs/inspector-B1mMLMX5.css
существует и правильно генерируется при запуске npm run build
, а сгенерированный файл манифеста имеет запись для него в свойстве css файла, который его импортирует:
"Inspector/InspectorApp.jsx": {
"file": "reactjs/inspector-FdX6WZL2.js",
"name": "inspector",
"src": "Inspector/InspectorApp.jsx",
"isEntry": true,
"imports": [
"_Loading-CnrJ4Xi6.js"
],
"css": [
"reactjs/inspector-B1mMLMX5.css"
]
},
Похоже, что при моих текущих настройках выполнение python manage.py collectstatic --noinput
генерирует отдельный файл манифеста под названием staticfiles.json
, однако это не похоже на проблему, поскольку при некоторых предыдущих настройках (например, без использования WhiteNoise) я получал ту же ошибку, но ссылался на правильный файл манифеста Vite.
Вот мой текущий файл settings.py:
vite.config.js
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
import { join, resolve } from 'path'
// https://vitejs.dev/config/
export default defineConfig(() => {
const INPUT_DIR = './frontend';
const OUT_DIR = './static';
return {
plugins: [react()],
base: '/static/',
root: resolve(INPUT_DIR),
build: {
manifest: 'manifest.json',
emptyOutDir: true,
outDir: resolve(OUT_DIR),
assetsDir: 'reactjs',
rollupOptions:{
input: {
inspector: join(INPUT_DIR, 'Inspector/InspectorApp.jsx'),
compare: join(INPUT_DIR, 'Compare/CompareApp.jsx'),
},
},
},
};
});
Я проверил все остальные файлы Django и не нашел в них никаких ошибок (все они работают и корректно отображаются в режиме отладки). На данном этапе я перепробовал все решения, которые смог найти, и ни одно из них не решило проблему.