Dojo请求已经内联的Dijit模板--Google Closure构建

时间:2013-06-16 16:33:20

标签: dojo template-engine google-closure-compiler dojo-build

我已经在StackOverflow上询问过this questionsolution应该在提交中修补过了:

但即使在使用此设置进行了一些广泛的测试之后:

  • Dojo / DojoX / Dijit 1.8.3
  • 使用它的最新版本(GitHub上的主分支)

我不断遇到同样的问题。

问题如下:

使用util build.sh脚本构建我的应用程序之后。 我的个人资料是:

var profile = {
    basePath: '../src/',
    action: 'release',
    cssOptimize: 'comments',
    mini: true,
    internStrings: true,
    optimize: 'closure',
    layerOptimize: 'closure',
    stripConsole: 'none',
    selectorEngine: 'acme',
    layers: {
        'dojo/dojo': {
            include: [ 'dojo/dojo', 'dojo/i18n', 'dojo/domReady', 'app/main', 'app/run', 'app/widgets/Application'],
            boot: true,
            customBase: true
        },
    },
    staticHasFeatures: {
        'dojo-trace-api': 0,
        'dojo-log-api': 0,
        'dojo-publish-privates': 0,
        'dojo-sync-loader': 0,
        'dojo-xhr-factory': 0,
        'dojo-test-sniff': 0
    }
};

并且正在运行:

java -Xms256m -Xmx256m  -cp ../shrinksafe/js.jar:../closureCompiler/compiler.jar:../shrinksafe/shrinksafe.jar org.mozilla.javascript.tools.shell.Main  ../../dojo/dojo.js baseUrl=../../dojo load=build --require "$myConfig" --profile "$myProfile" --releaseDir "$myReleaseDir" $@
  • 1)我的Dijit模板在输出文件中内联,就像它们应该的那样,但是在运行应用程序时,Dojo仍在为已经内联的模板化做出Ajax请求!

  • 2 *)nls目录放在错误的目录(dojo目录代替根目录)中,必须移动。 (我不确定这是否与我遇到的错误有关。)

内联格式为:

"url:path/to/my/template.html":'<p>Some escaped HTML</p>'

模板需要格式:

dojo/text!./path/to/my/template.html

提前致谢!

1 个答案:

答案 0 :(得分:0)

我也有类似的问题。在我的应用程序中,我使用了多个dijit小部件,为了避免许多AJAX调用,我创建了一个图层。

layers:{
'dijit/mydijit':{
    include:["dijit/_base","many dijit widgets"]
}

在我的应用程序中包含dijit/mydijit.js后,浏览器继续为dijit/_base进行AJAX调用

要解决此问题,我添加了dijit/_base作为dijit/mydijit图层

的依赖项
layers:{
'dijit/mydijit':{
    include:["dijit/_base","many dijit widgets"],
    dependecies:["dijit/_base"]
}

在此之后,没有dijit/_base.

的请求

希望这可以帮助你:)