Tech Racho エンジニアの「?」を「!」に。
  • 開発

[JavaScript] クロスドメインビルドしたDojoライブラリを使う

Dojoは、デフォルトでは読み込み元HTMLと同じサーバに置くことを前提に作られています。
具体的には、dojo.require()が、XMLHttpRequestを使ってデータを取得します。

このため、同じドメインにライブラリを設置できない場合(共有サーバで権限が無い時など)、クロスドメインの制限でdojo.require()が失敗してしまいます。
dojo.parserなどの内部でrequireを使っているため、ライブラリの読み込み時点でエラーが多発してしまいます。

この場合は、クロスドメインビルドしたdojoライブラリ(XDomain Dojo)を使用します。

方法1: AOLを使用

お手軽に使うには、AOLのCDNを活用します。
http://dev.aol.com/dojo に書いてあるように、以下の形式でdojoライブラリを読み込むだけでOKです。

<script type=”text/javascript” src=”http://o.aolcdn.com/dojo/1.3/dojo/dojo.xd.js”></script>

この場合、dojo.requireは、デフォルトで用意されているdojo, dijit, dojoxのみ使用可能で、自前のコンポーネントは使用できません。

方法2: クロスドメインDojoのビルド

方法1はお手軽ですが、AOLのサーバが重いとか、自前で設置したいこともあると思います。
その場合、Dojoをソースからビルドします。

1. ソースを入手

まず、Dojoのダウンロードサイトから、ソースを取得します。dojo-release-1.3.0-src.zip のように、srcが付いているものがソースです。

2. ビルド

そして、以下のページの手順に従い、ビルドします。

具体的には、以下のコマンドでビルドできます。(Linuxの場合)

xdDojoPathに、Dojoライブラリを設置するディレクトリ名を記述します。テスト環境と本番環境ではURLが違うと思うので、その場合は2回ビルドする必要があります。

パックするライブラリを変更したい場合は、profileを変更します。

$ cd util/buildscripts
$ build.sh profile=standard loader=xdomain xdDojoPath=//www.bpsinc.jp/dojoxd action=release

以上のコマンドを入力すると、ビルドが始まり、しばらくするとreleaseフォルダにXDomainビルドされたDojoが生成されます。

3. 設置

xdDojoPathに設定したフォルダに、dojoを設置します。
上記の例では、DocumentRootのdojoxdフォルダに、dojo/dijit/dojox が入っている状態になります。

4. 読み込み

あとは、

<script type=”text/javascript” src=”https://www.bpsinc.jp/dojoxd/dojo/dojo.xd.js”></script>

のように読み込めばOKです。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。