qooxdooアプリケーションのソースバージョンをWebサーバーから実行しようとしています。アプリケーションは、ファイルシステムからロードすると正常に動作しますが、Webサーバーから起動するとロードに失敗します。
2 に答える
に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
ソースバージョンは、ほとんどの場合ファイルシステムから実行されます(つまり、ブラウザでファイル:プロトコルを使用して開きます)。ソーススクリプトは、ファイルシステム上のどこにあっても、相対パスを使用してソースコードとリソースを参照するだけです。これは通常、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コンポーネントの共通の親であるファイルシステム内のディレクトリにマップすることです。