6

私はオライリーの本「道場-決定的なガイド」を読んでいますが、何かがまだ私にとって決定的なものではありません。

彼らは「ブートストラップ」とAOLCDNからのdojo.cssの取得について話します。

自分のマシンでテストする場合、CDNを使用する必要がありますか?それとも、デプロイするときにのみそれを待って使用する必要がありますか?

第二に、この本は道場のCDNについて語っていますが、dijitのCDNについては語っていません。

私はGoogleAppEngine(GAE)で開発しています。そのため、Javascriptディレクトリに2000以上のDojo / Dijitファイルがあると、GAEへのアップロードが毎回遅くなるため、少し面倒です。

Firebugは私にこのエラーを与えています:GET http:// localhost:8080 / dijit / nls / dijit-all_en-us.js 404 not Found GET http:// localhost:8080 / dijit / _editor / plugins / FontChoice.js 404 not見つかった

ここからサンプルをダウンロードしました: http ://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/themes/themeTester.html?theme = soria そして、ローカルホストの下で自分のマシンで「単に」実行したいと思いますgoogle app engine(上記のURLに表示されるlocalhost:8080)。

上記の2番目の404を引き起こしている可能性のある次のステートメントが表示されます。dojo.require( "dijit._editor.plugins.FontChoice");

もう1つのエラー:最適化されたクロージャーpreload( "en-us")にアクセスできませんdijit-all.js(479行目)anonymous( "dijit.nls.dijit-all"、["ROOT"、 "ar"、 "ca"、 40 more ... 0 = ROOT 1 = ar 2 = ca 3 = cs 4 = da 5 = de 6 = de-de 7 = el 8 = en 9 = en-gb])dijit-all.js(489行目) dijit-all.js()dojo.i18n._searchLocalePath(locale、true、function(loc){\ n

とりあえず続けるために、dijitライブラリ全体をコピーしようと思いますが、それ以外の解決策はありますか?

私の現在のスクリプトには次のようなものが含まれています。

<script type="text/javascript" src="/javascript/dijit.js"></script>

<script type="text/javascript" src="/javascript/dijit-all.js" charset="utf-8"></script>

dijit.js.uncompressed.jsをdijit.jsにコピーして名前を変更することで、dijit.jsファイルを取得しました。

4

3 に答える 3

2

CDN を使用する場合に含める必要があるのは、メインの Dojo スクリプトだけであることを明確にしたいと思います。残りは、それらを使用すると自動的に引き込まれますdojo.require()

何らかの (技術的な) 理由で X-Domain ローダーを使用したくない場合 (CDN はこのタイプのローダーを使用します)、カスタム ビルドを行うことができます (多くの場所で詳しく説明されています)。ビルド後、関連ファイルのみをサーバーにコピーします。2000 以上のテスト、デモ、未使用の DojoX プロジェクト、Dijit などをすべてコピーする必要はありません。

ビルド中に、使用するすべての Dojo JavaScript コードを含む単一の縮小ファイル (またはいくつかのレイヤー) を作成します。Dojo ウィジェットを使用する場合、それらのテンプレートは既にインライン化されているため、ヒットは発生しません。ビルドの一部として、CSS ファイルも一緒に結合され、縮小されます。したがって、ほとんどの場合、文字通り 2 つのファイルしかありません。Dojo レイヤー (すべてとカスタム コードを含む) と、CSS ファイルです。より複雑なケースでは、より多くのファイルが存在する可能性がありますが、通常はほんの一握りについて話しています。

すべてがビルドに含まれていることを確認するにはどうすればよいですか? お気に入りのネットワーク アナライザー (Live HTTP Headers、Firebug、Fiddler2、または Charles Proxy で問題ありません) を起動して、ビルドの外部にあるファイルにヒットするかどうかを確認します。もしそうなら — それらをビルドに含めるか、それらが要求された理由を理解しようとし、これらの要求を排除します (一部のローカリゼーション関連の呼び出しは問題ありません)。

個人的には、CDN オプションから始めます — うまく機能し、手間がかからず、太いパイプを持つ他の誰かによってホストされています。

于 2009-08-28T02:50:45.080 に答える
0

最初の質問に対処するには、開発にローカルで完全なソースバージョンを使用します。これにより、縮小バージョンが縮小された1行ではなく、ソース内の読みやすい行を指すより明確なデバッグ情報を取得できます。CDNを本番環境に使用します。

于 2009-08-27T19:53:15.040 に答える