在复制实时网站并将其移至开发服务器后,我遇到了这个奇怪的问题。似乎javascript文件给了我错误。
从现场到开发人员比较js代码,在某些方面也有差异。
进入首页时出现的JavaScript错误示例:
这是内联的地方
Uncaught TypeError: $(...).dropdownDialog is not a function
at (index):606
at Object.execCb (require.js:1650)
at Module.check (require.js:866)
at Module.<anonymous> (require.js:1113)
at require.js:132
at require.js:1156
at each (require.js:57)
at Module.emit (require.js:1155)
at Module.check (require.js:917)
at Module.enable (require.js:1143)
在dropdown.js上。
Uncaught SyntaxError: Invalid or unexpected token
在i18n.js上
Uncaught SyntaxError: missing ) after argument list
例如,在这种情况下,我将2个文件的末尾i18nJS文件进行了比较。最终,实时代码比开发服务器的代码多,并且错过了setText(el, $.mage.__(original));
来自现场的i18nJS文件。
execute = function(element, valueAccessor, isUpdate) {
var original = ko.unwrap(valueAccessor() || '')
, el = getRealElement(element, isUpdate)
, inlineTranslation = (module.config() || {}).inlineTranslation;
if (inlineTranslation) {
setTranslateProp(el, original);
} else {
setText(el, $.mage.__(original));
}
};
ko.bindingHandlers.i18n = {
init: function(element, valueAccessor) {
execute(element, valueAccessor);
},
update: function(element, valueAccessor) {
execute(element, valueAccessor, true);
}
};
ko.virtualElements.allowedBindings.i18n = true;
renderer.addNode('translate', {
binding: 'i18n'
}).addAttribute('translate', {
binding: 'i18n'
});
});
来自开发人员的i18nJS
execute = function (element, valueAccessor, isUpdate) {
var original = ko.unwrap(valueAccessor() || ''),
el = getRealElement(element, isUpdate),
inlineTranslation = (module.config() || {}).inlineTranslation;
if (inlineTranslation) {
setTranslateProp(el, original);
} else {
setText(el, "'"
.addAttribute('translate', {
binding: 'i18n'
});
});
那只是一个文件。但是他们所有人都缺少$.mage()___('Close');
之类的东西。
还有一些字符串无法在后端正确显示。
示例:
http://prntscr.com/mp1ps3
http://prntscr.com/mp1q37
http://prntscr.com/mp1qbq
所以我尝试了: 我尝试了开发人员模式 我尝试了生产模式
rm -rf pub/static/* var/view_preproccesed
重新部署整个静态文件。
两台服务器唯一的区别是,一台在cpanel上运行,而另一台在php 7.0上运行plesk。
预先感谢