2009-08-27 5 views
6

私はO'Reillyの本「Dojo - The Definitive Guid」を読んできましたが、何かはまだ私にとって決定的なものではありません。彼らは、「ブートストラップ」とAOL CDNからdojo.cssを得る」について話すDojoとDijit - ファイルに含めるか参照するか?

私は私のマシン上でテストしてい

、私はCDNを使うべきか?それとも、私はときにのみことを待ってから使用する必要があります私が展開

第二に、道場のためのCDNについてのブックトークではなくdijitのために、私はGoogle App Engineの(GAE)上で開発してい

- ?。そう、私のJavaScriptで2000+道場/ Dijitにファイルを有しますディレクトリは毎回GAEへのアップロードを遅くするので、少し迷惑です。

Firebugのは、私は、このエラーを与えている: http://localhost:8080/dijit/nls/dijit-all_en-us.js 404が見つかりません http://localhost:8080/dijit/_editor/plugins/FontChoice.js 404は

が見つかりませんゲット私はここからサンプルダウンロード: http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/themes/themeTester.html?theme=soria を、私は「単に」それが私の上で実行するために取得したいのですがローカルのGoogleアプリケーションエンジン(上記のURLに表示されているlocalhost:8080)の下にあります。

おそらく上記の2番目の404を引き起こしているこの文を参照してください: dojo.require( "dijit._editor.plugins.FontChoice");

もう一つのエラー: が( "EN-US")の閉鎖に 予圧を最適化されたアクセスができないのdijit-all.js(ライン479) 匿名( "dijit.nls.dijit-すべて"、[ "ROOT"、 " 0 "= ROOT1 = ar2 = ca3 = cs4 = da5 = de6 = de-de7 = el8 = en9 = en-gb])dijit- all.js(ライン489) のdijit-all.js() dojo.i18n._searchLocalePath(ロケール、真、機能(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にdijit.js.uncompressed.jsをコピーし、名前を変更することによりdijit.jsファイルを得ました。

答えて

8

あなたが実際にいくつかのオプションがあります:

  1. (ローカルで完全なソースを使用すると、あなたのより良いエラーメッセージを与えるんが)あなたはすべてのためにCDNを使用することができます。 Google has them as well。 Dijitはここにあります:http://ajax.googleapis.com/ajax/libs/dojo/1.3.2/dijit/dijit.js FYI。これは私の意見では多くの利点があります。主要なものであるJSのユーザーキャッシング

  2. レイヤードファイルをビルドします。私はO'Reillyの本にそれに関するセクションがあると思うが、PragProg bookはこの点でIMOのほうが良い。建物についてはdoc on dojocampus.orgもあります。これにより、GAEにアップロードしてアプリの読み込みを高速化するために必要なファイルがトリミングされます。これは、実際にはHTTPリクエストを減らすために行うことです。

  3. あなたがしていることを続けてください。 :)あなたはEN-USファイル約404を見ているエラーについて

は基本的に無害です。 Here's a better description

dijit.uncompressed.jsとdijit-all.jsを使用してdijitファイルをリロードしていて、プロセスで問題が発生している可能性もありますが、これについてはわかりません。

0

最初の質問に対処するには、開発用に完全ソースバージョンをローカルで使用してください。これにより、ミニバージョンが縮小された1行ではなく、読み込み可能なソース行を指すデバッグ情報が得られます。生産のためにCDNを使用してください。

2

私は、CDNを使用するときは、すべてのDojoスクリプトを含める必要があることを明確にしたいと思います。残りはdojo.require()になると自動的に引き込まれます。

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

ビルド中に、使用するすべてのDojo JavaScriptコードを含む、単一の1つまたは複数のレイヤーを作成します。 Dojoウィジェットを使用すると、そのテンプレートはすでにインライン化されているため、ヒットしません。ビルドの一環として、CSSファイルが結合され、縮小されます。ほとんどの場合、ほとんどの場合、Dojoレイヤーには、すべて+カスタムコードとCSSファイルが含まれています。もっと複雑なケースでは、ファイルが増えているかもしれませんが、通常、私たちは一握りの話をしています。

すべてがビルドされていることを確認するにはどうすればよいですか?お気に入りのネットワーク・アナライザを起動(ライブHTTPヘッダ、Firebugは、Fiddler2を、またはチャールズプロキシは罰金だろう)、あなたのビルドの外の任意のファイルを打つかどうかを確認します。あなたが—を行う場合(一部のローカライズ関連の呼び出しは大丈夫です)、ビルドに含める、またはそれらが要求されている理由を把握し、これらの要求を排除しようとします。

個人的に私はうまく機能— CDNオプション、脂肪パイプと他の誰かが主催していない手間、で始まります。