【问题标题】:Foxx app returns 404Foxx 应用程序返回 404
【发布时间】:2014-08-30 22:04:37
【问题描述】:

我正在尝试运行自定义 Foxx 应用程序。

目录结构:

  • ~/src/js/foxx
    • 数据库
      • _系统
        • 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) 下的文档中复制的示例应用对我来说很好用。

我还可以运行土豚管理员,这就是我创建“测试”数据库的方式。不过,我确实注意到它的图标上显示“非活动”,而 _system 显示“活动”,不确定这是否相关。

另外,在 admin 中,“myapp”显示在测试数据库的应用程序列表中。

【问题讨论】:

    标签: arangodb


    【解决方案1】:

    出现 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。关闭浏览器或清除其缓存可能会解决此问题。

    【讨论】:

    • 谢谢!我实际上在那里有它,但认为它特定于他们给出的示例,这就是我删除它的原因。也感谢您提供指向文档的链接,是的,我必须清除缓存。换档 + 重新加载并没有削减它!
    猜你喜欢
    • 2021-01-06
    • 2014-04-30
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2018-07-04
    相关资源
    最近更新 更多