2010-12-29 2 views
0

私はdojoツールキットをダウンロードし、dijit/themes/themeTester.htmlを開きます。道場はうまくいかない。私はツールキットを私のWebサーバーのwebappディレクトリにコピーする必要があります。それから私はHTTPを介して同じhtmlにアクセスします。道場が機能します。私のdojoはHTTP経由でアクセスしたときにのみ動作します

開発中、テスト用にWebサーバーに常にページを展開する必要がありますか?

ありがとうございました。

答えて

2

この動作はDojo固有ではありません。セキュリティ上の理由から、ファイルシステムから直接ロードされたWebページがホームディレクトリの外にリソースをロードすることを禁止するブラウザ(Firefoxが考えられる)があります。

例:お客様のウェブページは/home/bob/page.htmlです。

  • bob.js(有効パス:/home/bob/bob.js
  • ./sam.js/home/bob/sam.js
  • abc/spot.js/home/bob/abc/spot.js
  • など

に、それは次のリソースをロードできませんそれは、次のリソースを含むことができ(存在する場合でも):

  • ../bob.js/home/bob.js
  • /home/tom/script.js
  • ../tom/script.js/home/tom/script.js

理論的にはあなたがFirefoxの根性に行くことができるとオフ、この "機能" を有効にしていますが、他の問題が発生する場合があります。

  • XHRがファイルシステムから面白い場合があります。 WebサーバーはMIMEヘッダーをファイルとともに送信しますが、ファイルシステムはこのサービスを提供せず、XHRは推測する必要があります。時にはそれは間違っていると推測します。
  • Dojoはサーバー側のコードを必要としませんが、テストではPHPを使用してサーバー側のデータ・ストアなどをエミュレートできます。ファイルシステムから実行しているとき、それらのPHPファイルは通常実行されるのではなくそのまま提供されます。

それ以外のファイルシステムから直接Webアプリケーションを実行できるはずです。アプリケーション全体が1つのフォルダ内にあり、すべてのHTMLページが上部のフォルダ(またはサブフォルダにありますが、それらの上に何も使用しない)であり、絶対パスを避けて、「上に行く」というシンボル(..)がメインフォルダの外側に(一時的にも)あなたを連れて行き、XHRの応答を常にテストするパス。

関連する問題