Загрузчик Django webpack уважает настройку STATICFILES_STORAGE
У меня есть проект Django, который использует загрузчик webpack для работы с vue со следующими настройками
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3StaticStorage'
Так, например, если мы имеем <script src="{% static "js/main.js" %}"></script>, Django преобразует его, скажем, в https://my_service_url.com/static/js/main.js
Это прекрасно.
Но проблемы начинаются с пакетами, сгенерированными загрузчиком webpack, для которого у меня следующие настройки
WEBPACK_LOADER = {
'DEFAULT': {
'CACHE': False,
'BUNDLE_DIR_NAME': '/bundles/', # must end with slash
'STATS_FILE': os.path.join(FRONTEND_DIR, 'webpack-stats.json'),
'POLL_INTERVAL': 0.1,
'IGNORE': [r'.+\.hot-update.js', r'.+\.map'],
}
}
И в моем файле vue.config.js
const BundleTracker = require("webpack-bundle-tracker");
const pages = {
...
}
module.exports = {
publicPath: '/static/',
outputDir: './dist/',
chainWebpack: config => {
config.optimization
.splitChunks(false)
config
.plugin('BundleTracker')
.use(BundleTracker, [{filename: '../frontend/webpack-stats.json'}])
config.resolve.alias
.set('__STATIC__', 'static')
config.devServer
.public('/static/')
.host('0.0.0.0')
.port(8080)
.hotOnly(true)
.watchOptions({poll: 1000})
.https(false)
.headers({"Access-Control-Allow-Origin": ["\*"]})
},
pages: pages
};
Итак, проблема в том, что при такой настройке Django пытается искать пакеты, используя адрес
http://localhost:8006/static/js/my_bundle.js
вместо https://my_service_url.com/static/js/my_bundle.js
Как мне заставить это работать? Я полагаю, мне нужно как-то настроить module.exports...