Dojoでクロスドメインのカスタムビルドを実装する際に問題があります。次のように 状況は次のとおりです。私はそうbasiclyディレクトリ構造は
コア\(私のモジュール)
エン
\ \
FR \
NLSのようなものです、ローカリゼーションバンドルのかなりの数で、かなり大規模なアプリケーションを持っています ....
私のモジュールをビルドすると、大きなcore.js/core.xd.jsファイルが生成されます。このファイルには、ローカライゼーションが含まれていません。ローカリゼーションのnlsディレクトリ(en/fr/etc)では、各バンドルをビルド/ミニ化した後、各言語用のより大きなファイルcore_fr.js/core_en.fsにDojo/Dijit関連の文字列のみが含まれています。NLS /ローカライゼーションを使用したDojoカスタムビルド
ので、私のビルドスクリプトがcore.controller.Fuseboxクラスで
layers: [
{
resourceName: "core",
name: "../core/trusted.js",
dependencies: [
"dojo.i18n",
//data
"dojox.data.JsonRestStore",
"dojox.data.XmlStore",
"dojox.rpc.Service",
"dojox.form.FileInput",
...
"core.controller.Fusebox"
],
prefixes: [
["dijit","../dijit"],
["dojox","../dojox"],
["core", "../core"]
]
である私は1つのNLS
dojo["requireLocalization"]("core", "FuseboxContent");
をロードしようここでは
availableFlatLocales is undefined
[Break on this error] var locales = availableFlatLocales.split(",");\r\n
でしかし、死んでしまいます
htmlファイルの私の設定は:
// version build
var djConfig = {
baseUrl: 'https://..../',
modulePaths: { 'core': 'core'},
useXDomain: true,
xdWaitSeconds: 10,
parseOnLoad: true,
afterOnLoad: true,
// debugAtAllCosts: true,
isDebug: true,
locale: "fr"
};
、その後
<script type="text/javascript" src="http://xd.woopic.com/dojoroot/1.3.2-xd/dojo/dojo.xd.js.uncompressed.js"></script>
<script type="text/javascript" src="https://..../core/trusted.js.uncompressed.js"></script>
は、私はもちろん、デバッグ用の非圧縮を使用していました。 問題は、実行時にDojoがバンドルをロードしようとしたときにそのバンドルを見つけることができないため、レイヤー・ファイルに埋め込みたいので、余分な負荷は必要ありません。 これを達成できますか?私たちはそこにいる間に、クロスドメインローカリゼーションの作業現場/例はありますか? 更新:私は分析を続けました。問題は、動的にnlsをロードしているため、ビルドパーサーはrequireLocalization()呼び出しを見つけることができません。したがって、プロジェクトnlsファイルには、dojo/dijit関連のコンテンツのみが含まれています。しかし、ダミーファイルにバンドルロードをいくつか追加しましたが、core/nlsの内容はビルダーによって無視されています。
ありがとうございました。私は検索の最後にいます。この件に関しては、ネット上にはあまりありません。
私はxdの問題では専門家ではありませんが、私はmodulePathsのnlsエントリを見るのが好きでした。彼らは必要ではありません。あなたはそれらを使用していますか、あなたがそれらを排除すればそれは何か変わるのでしょうか? – peller
これらを削除しましたが、変更はありません。ローカライズはまだロードされていません。私は彼らがいくつかの遺産の理由のためにそこにいると思う...しかし、あなたが正しいのは役に立たない。私はそれに応じて投稿を更新した。 – aciobanu