我通过django-webpack-loader通过khrplatform.h处理Django中的Vue应用程序,在本地运行我可以通过在base.html
文件中使用以下内容来使其工作:
{% load render_bundle from webpack_loader %}
...
...
{% render_bundle 'app' %}
然而,在生产中,这不起作用 - 我相信因为webpack生产配置使用CommonChunksPlugin将包分成app
,manifest
和vendor
。
网上没有太多关于将Webpack与Django合并的文档 - 我想知道是否有办法在Django模板中包含所有块。
答案 0 :(得分:5)
问题最终是由于代码分裂造成的。在dev中,创建了一个JS文件,但在生产配置中,Webpack CommonChunksPlugin
被配置为将应用程序拆分为3个文件(清单,供应商和应用程序)。
此解决方案并不理想,可能无法很好地扩展,但通过在Django模板中放置条件标记,我能够正确引用必要的文件。
{% if STAGE or PRODUCTION %}
{% render_bundle 'vendor' 'js' %}
{% render_bundle 'manifest' 'js' %}
{% endif %}
{% render_bundle 'app' 'js' %}
答案 1 :(得分:1)
您是否编辑了settings.py以指向捆绑目录?
APP_DIR = os.path.join(BASE_DIR, 'app')
WEBPACK_LOADER = {
'DEFAULT': {
'BUNDLE_DIR_NAME': 'dist/'
}
}
STATICFILES_DIRS = (
os.path.join(APP_DIR, 'assets'),
)
然后使用HtmlWebpackPlugin指向块? https://github.com/jantimon/html-webpack-plugin/blob/master/README.md#writing-your-own-templates
plugins: [
new HtmlWebpackPlugin({
template: 'static/app/index.html'
}),
]