4

我正在使用 dojo1.7.2 我收到了 firebug 错误:未捕获的 ReferenceError:未定义要求

这是我的一段代码:

<script type="text/javascript" src="../js/release/dojo/dojo.js" 
 data-dojo-config="packages:[ {'name':'com','location':'/myApp/js/com'}], async: false, parseOnLoad: true, isDebug: true">
</script>
<script language="JavaScript" type="text/javascript">
    require(['dojo/dojo', "dijit/dijit", "dojox/dojox"], function () {
    require(["dojox/mobile", "dojo/parser"], function(mobile, parser){
        })
    });
</script>

我在这里哪里做错了?预先感谢。

4

4 回答 4

1

可能是从您指定的 src 加载 dojo 时出错,因为我不知道文件夹结构,我无法判断。

<script language="JavaScript" type="text/javascript">
    require(["dojox/mobile", "dojo/parser"], function(mobile, parser){
        alert("hi");
    });
</script>

这是它的工作http://jsfiddle.net/P4bvs/1/

这个外部要求( require(['dojo/dojo', "dijit/dijit", "dojox/dojox"] )不是必需的,但不是导致您的错误的原因。

于 2013-05-09T22:10:23.293 回答
1

我刚刚解决了这个问题。我的解决方案很有可能无济于事,因为这个问题可能是由很多不同的事情引起的。我的网站由server1.blah.com提供服务,dojo 由server2.blah.com提供服务。通常,该站点运行良好。然后我们有了一个新用户,该网站根本无法正常运行。我在 Web 控制台中收到错误:

ReferenceError: require is not defined

问题是两台服务器都使用 https,但没有证书。(这是一个 Intranet 应用程序)。因此,当您访问server1.blah.com时,它会询问您是否要继续并添加异常。但!server2也不例外!所以我让我的新用户导航到server2.blah.com/blah/dojo.js那里并添加异常。现在一切正常!(想一想 require,本例是来自dojo。如果由于多种可能的原因无法加载dojo,require则不会定义该函数)

另外,无论如何,我都不提倡将此作为最佳实践。只需设置您的证书!

于 2013-06-07T16:52:15.000 回答
0

最初,您需要检查它所在的 dojo.js 文件。您需要关注的最终问题是您的 dojo 文件夹在哪里以及在 src 标签“”中给出的位置是什么

于 2014-04-25T06:48:03.530 回答
0

我们在工作中遇到了同样的问题,只是为了让其他人知道如果你遇到了那个错误

Uncaught ReferenceError:require is not defined                at dojo.js:29
dojo.js:29

并且您正在使用single-spa或导入SystemJS的固定版本,这 <script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.21.5/system-production.js"></script> 可能是原因。因此,在我们的案例中,生产构建在开发中引发了这个异常,这是用于{mountParcel} with single-spa.

您可以从 index.html 指定非生产就绪的 systemjs,或者使用更好的方法在您的 html 中不注入 systemjs。

于 2019-05-30T18:29:45.263 回答