Reactjs 如何使用网页包解决django react应用程序?

Reactjs 如何使用网页包解决django react应用程序?,reactjs,django,webpack,django-react,Reactjs,Django,Webpack,Django React,我正在创建django+react项目,所以不要运行 npx create-react-app my-app 我在前端django应用程序中创建了这个文件夹结构。 要运行react组件,我在package.json文件中有一个带有如下脚本的Web包 我的网页包版本-5.4.0 "scripts": { "dev": "webpack --mode development ./frontend/src/index.js -o ./fr

我正在创建django+react项目,所以不要运行

npx create-react-app my-app
我在前端django应用程序中创建了这个文件夹结构。 要运行react组件,我在package.json文件中有一个带有如下脚本的Web包

我的网页包版本-5.4.0

 "scripts": {
    "dev": "webpack --mode development  ./frontend/src/index.js -o ./frontend/static/frontend/main.js",

    "build": "webpack --mode production ./frontend/src/index.js -o ./frontend/static/frontend/main.js"
  }

├── src
│   ├── components
│   │   ├── App.js
│   │   └── layout
│   │       └── Header.js
│   └── index.js
├── static
│   └── frontend
│       └── main.js
├── templates
│   └── frontend
│       └── index.html
├── tests.py
├── urls.py
└── views.py
前端应用程序结构如上所示

所以当我跑步的时候

npm run dev
它将main.js作为包,并将创建./frontend/static/frontend/main.js/main.js作为编译输出文件

因此,当我运行django服务器时,它将显示静态文件main.js not found(表示HTTP 404)

所以我必须手动删除main.js文件夹,并将main.js文件复制到前端文件夹中

npm run dev
它将显示此错误

[Error: ENOTDIR: not a directory, open '/{path to django app}/static/frontend/main.js/main.js'] {
  errno: -20,
  code: 'ENOTDIR',
  syscall: 'open'

这个错误很明显,因为我删除了main.js文件夹。但真正的问题是为什么网页输出将main.js创建为文件夹而不是文件?如何解决这个问题?

在我最喜欢的方法中,我使用nginx提供静态文件。Django不是为静态文件设计的。您可以在my docker compose中查看my docker compose和nginx配置的详细信息。