异常值:字符串索引必须是整数:渲染包错误 vue + django
Posted
技术标签:
【中文标题】异常值:字符串索引必须是整数:渲染包错误 vue + django【英文标题】:Exception Value: string indices must be integers : Render bundle error vue + django 【发布时间】:2020-07-22 08:26:36 【问题描述】:我使用 webpack loader 将我的 vue 应用程序注入 django,代码如下:
设置:
WEBPACK_LOADER =
'DEFAULT':
'BUNDLE_DIR_NAME':'/',
'STATS_FILE':os.path.join(BASE_DIR,'aptim-frontend/dist','webpack-stats.json')
vue 配置文件:
const BundleTracker = require("webpack-bundle-tracker");
module.exports =
// on Windows you might want to set publicPath: "http://127.0.0.1:8080/"
publicPath: "http://0.0.0.0:8080/",
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("http://0.0.0.0:8080")
.host("0.0.0.0")
.port(8080)
.hotOnly(true)
.watchOptions( poll: 1000 )
.https(false)
.headers( "Access-Control-Allow-Origin": ["*"] );,;
我得到错误的 html 行位于索引 html
% render_bundle 'app' %
错误:异常值:字符串索引必须是整数
【问题讨论】:
官方 github 问题在这里:github.com/owais/django-webpack-loader/issues/227 【参考方案1】:我在很棒的 Udemy 课程 The Complete Guide to Django REST Framework and Vue JS 中遇到了同样的问题。如果您没有订阅,您可能无法阅读 Michele Saba 的答案。
这可能与软件包版本有关,它们是 alpha。降级到
webpack-bundle-tracker@0.4.3 django-webpack-loader==0.7.0为我工作。降级使用:
npm install --save-dev webpack-bundle-tracker@0.4.3
【讨论】:
解决了Django 3.1.5
和django-webpack-loader 0.7.0
的问题
解决了 Django 3.2.7 的问题【参考方案2】:
按照@Frans 的说法降级 Webpack-bundle-tracker
npm install --save-dev webpack-bundle-tracker@0.4.3
在vue.config.js
config
.plugin('BundleTracker')
.use(BundleTracker, [filename: './webpack-stats.json'])
然后用旧的webpack-stats.json
删除dist
文件夹
在这个版本和这个配置中webpack-stats.json
文件是在frontend
而不是frontend/dist
中生成的
所以你必须把STATS_FILE
改成settings.py
(例如如果你的 Vue 项目是frontend
)
'STATS_FILE': os.path.join(BASE_DIR, 'frontend','webpack-stats.json'),
然后重新启动 Vue 和 Django 网络服务器。
【讨论】:
【参考方案3】:异常值:字符串索引必须是整数
我也遇到了这个奇怪的错误,确认降级到 webpack-bundle-tracker@0.4.3 可以工作。
【讨论】:
【参考方案4】:同样的问题。下面的配置对我有用
webpack-bundle-tracker@0.4.3 django-webpack-loader==0.6.0【讨论】:
以上是关于异常值:字符串索引必须是整数:渲染包错误 vue + django的主要内容,如果未能解决你的问题,请参考以下文章
为啥在尝试从 api 获取数据时出现此错误“TypeError:字符串索引必须是整数”?
类型错误:发出 REST API 请求时,字符串索引必须是整数