3

qooxdooアプリケーションのソースバージョンをWebサーバーから実行しようとしています。アプリケーションは、ファイルシステムからロードすると正常に動作しますが、Webサーバーから起動するとロードに失敗します。

4

2 に答える 2

4

にqooxdooフレームワークが/usr/pack/qooxdoo-1.0/frontendあり、にアプリケーションがあるとします/home/user/myproject。次に、次のようにシンボリックリンクをアプリケーションディレクトリに追加します。

ln -s ../../../../../../../usr/pack/qooxdoo-1.0/frontend qooxdoo

config.jsonファイルでをに設定QOOXDOO_PATHしますqooxdoo

このようにして、qooxdooソースへのすべての参照は、ローカルルートの見かけの深さに関係なく機能するはずです。Webサーバーの場合、FollowSymlinkまたは適切なものを許可する必要がある場合があります...

PSこのアプローチには、Windowsで起動したときにアプリケーションを機能させるという優れた副作用があります。\\server\user\myproject\source\index.html

于 2010-01-14T19:21:02.393 に答える
3

ソースバージョンは、ほとんどの場合ファイルシステムから実行されます(つまり、ブラウザでファイル:プロトコルを使用して開きます)。ソーススクリプトは、ファイルシステム上のどこにあっても、相対パスを使用してソースコードとリソースを参照するだけです。これは通常、Webサーバーから実行するのには適していません。アプリケーションのソースディレクトリをサーバーアクセス可能なパス(DocumentRootまたは定義されたエイリアスの1つからどこか下)に含めた場合でも、ソーススクリプトがWebサーバーのドキュメントスコープ外のファイルを参照している可能性があります。

したがって、Webサーバーからアプリのソースバージョンを実行する必要がある状況に陥った場合は、次のヒントに注意してください。

  • アプリケーションのソースディレクトリにWebサーバーからアクセスできるようにして、のような有効なURLを介してアクセスできるようにしますhttp://your.web.server/path/to/yourapp/source/index.html

  • qooxdoo SDK自体、および使用する追加のqooxdooライブラリまたはコントリビューションがあるため、アプリケーションで使用されるすべてのコンポーネントにWebサーバーから等しくアクセスできることを確認してください。

    • アプリケーション構成でcontrib://疑似プロトコルを介して参照されるcontribの場合、これらはダウンロードされ、ダウンロードキャッシュディレクトリ(config key cache / downloads)に保存されるため、このパスが考慮事項に含まれていることを確認してください。
  • Webサーバー上の相対パスがファイルシステム上の相対パスと一致することを確認します。たとえば、アプリがファイルシステム上に /a/b/A/myapp あり、qooxdooインストールがで /a/b/Z/qooxdoo-sdk あり、アプリへのサーバーパスがである 場合、qooxdooへのサーバーパスが そう/web/apps/myapp であることを確認します。 /web/Z/qooxdoo-sdkその相対的な参照../Z/qooxdoo-sdk willは、Webサーバーの下で機能します。

これを実現する簡単な方法は、DocumentRootまたはAliasを、アプリの関連するすべてのqooxdooコンポーネントの共通の親であるファイルシステム内のディレクトリにマップすることです。

于 2010-01-14T15:23:39.710 に答える