Я настраиваю Django с Webpack Dev Server и с трудом заставляю все работать вместе.
Мне удалось заставить приложение Djano обслуживать статические файлы js, создаваемые сервером разработки webpack, но нет перезагрузки в реальном времени, и я также получаю странную ошибку sockjs 404 ...
В моем settings.py у меня есть это:
STATIC_ROOT = os.path.join(PUBLIC_DIR, 'static')
STATIC_URL = 'http://127.0.0.1:8080/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'dist'), # We do this so that django's collectstatic copies or our bundles to the STATIC_ROOT or syncs them to whatever storage we use.
)
WEBPACK_LOADER = {
'DEFAULT': {
'CACHE': not DEBUG,
'BUNDLE_DIR_NAME': '', # must end with slash
'STATS_FILE': os.path.join(BASE_DIR, 'webpack-stats.json'),
'POLL_INTERVAL': 0.1,
'TIMEOUT': None,
'IGNORE': ['.+\.hot-update.js', '.+\.map']
}
}
и мой конфиг веб-пакета выглядит так:
var path = require('path');
var webpack = require('webpack');
var BundleTracker = require('webpack-bundle-tracker');
module.exports = {
context: __dirname,
entry: './djangowebpack/static/js/index.js',
plugins: [
new BundleTracker({filename: './webpack-stats.json'})
]
}
Я не указал выходной путь, поэтому он просто создает папку dist в корне.
Я использую webpack-загрузчик для передачи его моим шаблонам следующим образом:
{% load render_bundle from webpack_loader %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1 id="lol"></h1>
{% render_bundle 'main' 'js' 'DEFAULT' %}
</body>
</html>
Было бы здорово узнать, есть ли здесь какие-либо очевидные ошибки ... большое спасибо.