【发布时间】:2020-05-20 18:16:25
【问题描述】:
我最近正在关注一个关于在 Django 中使用 webpack 的教程,而对于我来说,本地主机就是找不到我的包文件
这是我在本地主机上检查时控制台显示的内容:
GET http://127.0.0.1:8000/static/bundles/bundle.js net::ERR_ABORTED 404 (Not Found)
但我的项目根目录中有一个名为 static 的目录,里面有一个 bundles 目录,还有一个 bundle.js 文件。我不明白为什么本地主机找不到我的文件
这是我的树的一部分:
├── static
│ └── bundles
│ └── bundle.js
├── templates
│ ├── base.html
│ ├── components
│ │ ├── game
│ │ │ └── game.html
│ │ └── lobby
│ │ ├── LobbyBase.jsx
│ │ ├── index.jsx
│ │ └── lobby.html
│ ├── home.html
│ ├── login.html
│ └── register.html
├── webpack-stats.json
└── webpack.config.js
如您所见,里面有一个静态文件、一个包文件,以及里面的 bundle.js。这是我的 Django 设置代码:
STATIC_URL = '/static/'
WEBPACK_LOADER = {
'DEFAULT': {
'BUNDLE_DIR_NAME': 'bundles/',
'STATS_FILE': os.path.join(BASE_DIR, 'webpack-stats.json'),
},
}
任何帮助将不胜感激!非常感谢
编辑:跟进:删除 STATIC_URL 也无济于事。认为这可能会导致问题,但似乎并非如此
【问题讨论】:
-
您需要同时配置 STATIC_URL(所有静态文件都可以通过 web 引用的 URL)和 STATIC_ROOT(所有静态文件将被物理定位的文件夹) - Django 将一个映射到另一个以使静态文件工作。 STATICFILES_DIRS 是可选目录的列表,在
collectstatic命令执行期间必须将文件从其中复制到 STATIC_ROOT;在 DEBUG=true 时也会搜索这些目录(因此可以在没有collectstatic的情况下访问文件)。 -
感谢您的评论!我对此很陌生-我可以像在staticfiles_dir中那样在setting.py中设置static_root吗?谢谢!
-
是的,这是正确的地方。
标签: django webpack django-webpack-loader