2014-08-30 93 views
2

我試圖運行自定義Foxx應用程序。Foxx應用程序返回404

目錄結構:

  • 〜/ SRC/JS /福克斯
    • 數據庫
      • _SYSTEM
        • my_app應用(從文檔)
      • 測試
        • 的myapp(我的自定義應用程序)
          • manifest.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)下的文檔複製的示例應用程序對我來說工作得很好。

我也可以運行aardvark管理員,這也是我創建「測試」數據庫的方式。但我注意到,它的圖標上顯示「不活動」,而_system顯示「活動」,不確定是否與此相關。

此外,在管理員中,「myapp」顯示在測試數據庫的應用程序列表中。

回答

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。關閉瀏覽器或清除緩存可能會解決這個問題。

+0

謝謝!我確實在那裏有,但認爲這是他們提供的例子的具體情況,這就是爲什麼我刪除它。感謝您的文檔鏈接,是的,我不得不清除緩存。換班+重新加載並沒有削減它! – ccraig 2014-08-31 03:11:12

相關問題