Reactjs 如何使用网页包解决django react应用程序?
我正在创建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
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配置的详细信息。