2

カスタム Foxx アプリを実行しようとしています。

ディレクトリ構造:

  • ~/src/js/foxx
    • データベース
      • _システム
        • my_app (ドキュメントから)
      • テスト
        • myapp (私のカスタム アプリ)
          • マニフェスト.json
          • app.js

myapp manifest.json

{
  "name": "myapp",
    "version": "0.0.1",
    "author": "ccraig",
    "controllers": {
      "/": "app.js"
    }
}

myapp app.js

(function() {
 "use strict";

 var Foxx = require("org/arangodb/foxx"),
 controller = new Foxx.Controller(applicationContext);


 controller.get("/", function(req, res) {
   res.set("Content-Type", "text/plain");
   res.body = "Hello world";
   });

}());

サーバーを起動するコマンド

arangod --javascript.dev-app-path ~/src/js/foxx ~/tmp/arango_db

次に、ブラウザを次のように指定します。

http://localhost:8529/_db/test/dev/myapp/

次の応答を受け取ります。

{"error":true,"code":404,"errorNum":404,"errorMessage":"unknown path 'dev/myapp/index.html'"}

_system (my_app) の下のドキュメントからコピーしたサンプル アプリは、問題なく動作します。

また、「テスト」データベースを作成した方法で、ツチブタ管理者も実行できます。ただし、アイコンに「非アクティブ」と表示されているのに対し、_system は「アクティブ」と表示されていることに気付きましたが、それが関連しているかどうかはわかりません。

また、admin では、「myapp」がテスト データベースのアプリケーション リストに表示されます。

4

1 に答える 1

2

404 の理由は、デフォルトでアプリケーション ルートへの呼び出しが「index.html」にリダイレクトされるためです。「index.html」がアプリで定義されたルートではない場合、404 が発生します。

これは、次のようにdefaultDocument属性を manifest.json ファイルに追加することで修正できます。

{
  "name": "myapp",
  "version": "0.0.1",
  "author": "ccraig",
  "controllers": {
    "/": "app.js"
  },
  "defaultDocument" : ""
}

ところで、マニュアルでこれを見つけました:http://docs.arangodb.org/Foxx/HandlingRequest.html

マニフェスト ファイルを変更した後でも、ブラウザーがリダイレクトをキャッシュしている可能性があるため、index.html にルーティングされる可能性があることに注意してください。ブラウザを閉じるか、キャッシュをクリアすると、これが解決する場合があります。

于 2014-08-30T14:04:37.957 に答える