我有一个 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
某种方式调整...