Magento 2 JS库有时无法加载

时间:2019-06-04 11:34:31

标签: magento2 magento-2.0 fotorama

我们当前正在运行Magento 2.2.6实例。有时产品图库会因JS错误而中断:

未捕获的TypeError:settings。$ elementF.fotorama不是函数

主页和目录页面上的其他js库也会发生这种情况。有时我们会出错

未捕获的TypeError:$(...)。CustomMenu不是函数

如果您硬刷新/清除浏览器缓存,它将起作用,并且该页面的所有错误消失,但是,如果您浏览该站点,它将在访问几页后再次引发错误。

我已经尝试过重新部署静态资产,打开和关闭静态签名,禁用所有扩展,禁用所有后端缓存以及将我的requirejs-config.js文件更改为依赖并填充jquery

File.Copy(dlg.FileName, destFile);

此问题之前已发布过多次,我们将不胜感激任何建议。

1 个答案:

答案 0 :(得分:0)

不幸的是,不能保证依存关系数组按顺序加载。

您可以在requireJS中使用shim,这将允许您定义库之间的依赖关系并导出可以与其他库一起使用的全局变量。

基本上在shim中,您可以使用 deps 属性来定义在使用包含的库之前应该加载的库。

您现在所拥有的已经很近了,但是不在垫片中

尝试一下:

var config = {
    deps: ['jquery'],
    map: {
        '*' : {
            'hello' : 'js/custom'
        }
    },
    shim: {
        // export the variable 
        jquery: {
            exports: '$'
        },
        // fotorama depends on jquery
        'fotorama/fotorama': {
            deps: ['jquery']
        }
    }
}