如何在require js中的data-main属性中包含版本化的JS文件

时间:2016-06-15 10:43:32

标签: javascript requirejs

我正在尝试使用如下所示的需要js的版本包含JS文件:

<script data-main="main.57302bdda2413911ef49e5d48c63d777.js" 
    src="/etc/ui/iea/clientlibs/core/require/js/require.js">
</script>
  

控制台错误: require.js:1未捕获错误:没有定义调用   main.57302bdda2413911ef49e5d48c63d777

这里有语法错误吗? 如何在data-main属性中包含2个点的文件?

2 个答案:

答案 0 :(得分:0)

在您的情况下,文件main.xxxx.js必须位于(http)根目录中。

而不是file:///home/..../index.html使用静态http服务器(list

/etc/ui/..../require.js替换为require.js。将main.xxxx.jsrequire.js放在同一目录中。在此目录中运行http服务器。转到http://127.0.0.1:xxxx

答案 1 :(得分:0)

在r.js优化器的build config中,如果您使用名称属性,它将使用该名称在您的捆绑文件中包含一个名称相同的模块,如下所示:

}), define("main", ["app"], function(a) {
    a.on("before:start", function() {}), a.on("start", function(a) {}), a.on("application:ready", function() {
        a.start()
    })
})

当这个与此定义定义结合的捆绑文件重命名为main。*。js而不是main.js时,会抛出错误

  

require.js:1未捕获错误:没有定义调用main。*。js

因为它无法找到名为define call的模块,因为它具有main.js的define调用,如上所述。

如果我能够理解/正确地提示您的问题,那么您需要一系列文件,这些文件可能使用正则表达式,要求js应该理解,如果它们存在,则应该使用 name 属性的值。我不知道这个问题的解决方案,我想知道是否有人这样做,会非常有帮助。