IBM Worklight 6.1 - 未捕获的 ReferenceErrors:未定义 WLJQ,未定义 WL
Posted
技术标签:
【中文标题】IBM Worklight 6.1 - 未捕获的 ReferenceErrors:未定义 WLJQ,未定义 WL【英文标题】:IBM Worklight 6.1 - Uncaught ReferenceErrors: WLJQ is not defined, WL is not defined 【发布时间】:2013-12-16 08:48:26 【问题描述】:我使用安装在 Eclipse Juno 中的 IBM Worklight Developer Edition 6.1 作为我的 IDE,并使用backbonejs 作为我项目的主要 javascript 框架。
我的 index.html
<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
<script>window.$ = window.jQuery = WLJQ;</script>
<script data-main="js/main" src="js/libs/require/require.js"></script>
</head>
<body>
</body>
</html>
我的 main.js
require.config(
paths:
jquery: 'libs/jquery/jquery-min',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-min',
templates: '../templates',
bootstrap: 'bootstrap.min',
initOptions: 'initOptions',
biiRibMobile: 'biiRibMobile',
messages: 'messages'
,
);
require(['app', ], function(App)
App.initialize();
);
我的 app.js
// Filename: app.js
define(['jquery', 'underscore', 'backbone', 'router', // Request router.js
'bootstrap', 'initOptions', 'biiRibMobile', 'messages', ], function($, _, Backbone, Router, bootstrap, initOptions, biiRibMobile, messages)
var initialize = function()
// Pass in our Router module and call it's initialize function
Router.initialize();
;
return
initialize: initialize
;
);
我的 initOptions.js
var wlInitOptions =
logger : enabled: true, level: 'debug', stringify: true, pretty: false,
tag: level: false, pkg: true, whitelist: [], blacklist: [],
analytics :
enabled: false
//url : ''
;
if (window.addEventListener)
window.addEventListener('load', function() WL.Client.init(wlInitOptions); , false);
else if (window.attachEvent)
window.attachEvent('onload', function() WL.Client.init(wlInitOptions); );
非常感谢。
【问题讨论】:
最好从 Eclipse 中导出 Worklight 项目并提供下载。您的代码 sn-ps 不完整,我不知道您可能从代码中删除了 Worklight 所需的其他内容。 当然。先生,我会告诉你的。 所以您不提供项目,而是打开一个新问题?您是否要提供项目以便我们为您提供帮助? 是的。我会尽快给你发回购。 还在等待项目。 【参考方案1】:@DavidDhuyveter 在 cmets 中有一个很好的答案。我在 Mac 和 Windows PC 上遇到了这个问题。他的回答解决了我的 Mac 问题。
对于 Windows,临时文件夹应位于 /Users/you/AppData/Local/Temp/1/ 或类似的位置。
编辑 大卫 cmets 被删除。这是原文:
如果您使用的是 mac,请执行以下操作:退出 eclipse。打开一个终端窗口并 cd $TMPDIR, rm -rf wlBuildResources wlPreview, 重新启动 Eclipse,重新构建您的应用程序,您应该一切顺利 -
【讨论】:
【参考方案2】:这个问题实际上发生了很多,而且真的很令人沮丧。有时一切都会工作一段时间,然后突然出现这个可爱的错误。您可以做的事情(一直对我有用)是:
-
在 Eclipse 中,转到 Project -> Clean ...
选中清理选定项目复选框,然后选择您的项目
点击确定
我会先尝试一下,看看效果如何。如果没有,您可以使用受信任的方法删除并重新导入。
【讨论】:
【参考方案3】:这个问题在v7.0中仍然存在。
虽然 TMPDIR 的清洁有时会奏效,但并不总是如此 - 我在这里看不到任何模式。
重新启动我的 MACbook 似乎工作可靠,我推测这是因为我们获得了新的 TMPDIR。
我刚刚发现:
-
从服务器中删除项目
重命名项目(例如 MyProjectZZZ)
重新构建和部署,但不要费心运行
将项目重命名为 MyProject
重建和部署
好像收拾东西了
【讨论】:
【参考方案4】:每当我从 Worklight 控制台打开应用程序时遇到此问题时,对我有帮助的是我右键单击该应用程序,选择运行方式 -> 预览,然后再尝试从 Worklight 控制台加载它。 之后,无论我从哪里启动,应用程序都会开始运行。
【讨论】:
【参考方案5】:与 WL 6.1 相同的问题。我的应用无法使用链接“预览作为公共资源”,但它可以与移动浏览器模拟器一起使用
我通过退出 Eclipse 解决了这个问题,然后删除了 tmp 文件夹(Linux 上的 /tmp)中的 wlbuildressources 和 wlpreview 文件夹。在那之后,我重新启动了eclipse并且它工作了。但是,这是 6.1 中的一个错误。
【讨论】:
【参考方案6】:我想我终于找到了一个简单的解决方法。
在 Eclipse 中右键单击您的项目名称,选择关闭项目,然后再次右键单击并选择打开项目。这修复了我损坏的预览页面。
【讨论】:
【参考方案7】:对我来说最快的解决方法是删除项目,然后再次将项目添加到工作区中。这不必因重命名项目或其他流程而受到影响。
【讨论】:
以上是关于IBM Worklight 6.1 - 未捕获的 ReferenceErrors:未定义 WLJQ,未定义 WL的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.1 - 未显示 HTML 文件的内容
IBM Worklight 5.0.x:未捕获的 TypeError:无法调用未定义的方法“init”
IBM Worklight 6.1 - 如何打开 https 链接?
IBM Worklight 6.1 [收到来自客户端的错误令牌]