Невозможно заставить Django запустить фронтенд из сборки Vite ("был заблокирован из-за запрещенного типа MIME ("text/html")").

Мой фронтенд - это приложение React, которое я скомпилировал с помощью npm run build. После того, как папка сборки скопирована в проект django, я захожу в свой Django virtualenv и запускаю python3 manage.py collectstatic и python3 manage.py runserver

Когда я запускаю сервер, я могу прочитать две ошибки в консоли:

Loading module from “http://127.0.0.1:8000/assets/index-sLPpAV_Z.js” was blocked because of a disallowed MIME type (“text/html”).
The resource from “http://127.0.0.1:8000/assets/index-6ReKyqhx.css” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).

и одно предупреждение:

Loading failed for the module with source “http://127.0.0.1:8000/assets/index-sLPpAV_Z.js”.

(Django) settings.py

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

package.json

...
"scripts": {
    "dev": "vite",
    "build": "rm -rf ../backend/build && tsc && vite build && cp -r build ../backend/build",
    "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview"
  },
...

Я запутался, потому что в папке сборки нет папки static. Django выдает мне следующее предупреждение:

WARNINGS:
?: (staticfiles.W004) The directory '/home/user/project/backend/build/static' in the STATICFILES_DIRS setting does not exist.

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

build/
----assets/
--------index-<randomString>.css
--------index-<anotherString>.js
----index.html
----vite.svg

Примечание: я запускаю все локально

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