l***@qq.com
l***@qq.com
  • 发布:2020-07-27 17:07
  • 更新:2020-07-27 17:07
  • 阅读:845

【报Bug】关于 renderjs 引入 script 时相对目录异常的问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10.0.18362.904

HBuilderX类型: 正式

HBuilderX版本号: 2.8.2

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: k20pro

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

    let mjssChart, qyldsclChart, yfzbChart;  
    export default {  
        mounted() {  
            if (typeof window.echarts === 'function') {  
                this.initEcharts()  
            } else {  
                // 动态引入较大类库避免影响页面展示  
                const script = document.createElement('script')  
                // view 层的页面运行在 www 根目录,其相对路径相对于 www 计算  
                script.src = 'static/echarts.js'  
                //#ifdef H5  
                script.src = '/static/echarts.js'  
                // #endif  

                script.onload = this.initEcharts.bind(this)  
                document.head.appendChild(script)  
            }  

        },  
        methods: {  
            initEcharts() {  
                mjssChart = echarts.init(document.getElementById('mjssChart'))  
                mjssChart.setOption(this.mjssChart)  

                qyldsclChart = echarts.init(document.getElementById('qyldsclChart'))  
                qyldsclChart.setOption(this.qyldsclChart)  

                yfzbChart = echarts.init(document.getElementById('yfzbChart'))  
                yfzbChart.setOption(this.yfzbChart)  

            },  
            updateEcharts(newValue, oldValue, ownerInstance, instance) {  
                // 监听 service 层数据变更  
                if (mjssChart && newValue.id == "mjssChart") mjssChart.setOption(newValue);  
                if (qyldsclChart && newValue.id == "qyldsclChart") qyldsclChart.setOption(newValue);  
                if (yfzbChart && newValue.id == "yfzbChart") yfzbChart.setOption(newValue);  
            },  
            onClick(event, ownerInstance) {  
                // 调用 service 层的方法  
                ownerInstance.callMethod('onViewClick', {  
                    test: 'test'  
                })  
            }  
        }  
    }  
</script> ``` 

操作步骤:

把条件编译去掉,分别用 app 和 h5测试,
script.src = 'static/echarts.js'

预期结果:

app测试 和 h5预览,在相对路径时,都能获取 echart。

实际结果:

相对路径 app可以,h5失败
绝对路径(文档不推荐js绝对路径) app 失败 , h5 ok

bug描述:

关于 renderjs 引入 script 时目录问题

script.src = 'static/echarts.js' 时 h5模拟器 不能正确的找项目根目录的 static/echarts.js 需要
//#ifdef H5
script.src = '/static/echarts.js'
// #endif

但是 加上 绝对路径后 h5-ok 手机测试-fail
可以确认时本次版本的bug 在昨天前, 程序是没问题的。

2020-07-27 17:07 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复