【问题标题】:problem hosting a Static page with loopback托管带有环回的静态页面的问题
【发布时间】:2019-11-11 22:50:34
【问题描述】:

我想在环回中托管一个静态页面。我在客户端目录中添加了 HTML 并删除了 server/boot/root.js 中的默认路径

但是,我必须遵循一些关于路由的规则,以便在 config.json 的 restApiRoot 中将 '/api/' 替换为 '/'。现在我想在“/”路由上托管这个静态 HTML 页面。但它给出了这个错误

{"success":false,"message":"There is no method to handle GET /"}

另外,我尝试像这样在 middleware.json 中为静态页面设置不同的路径,

"files": {
    "loopback#static": {
      "paths": [
        "/admin/"
      ],
      "params": "$!../client"
    }
  },

不过,这也行不通。 PS:我添加了一个启动脚本来遵循我们的响应行为准则,这就是它给出这种类型的响应的原因。

【问题讨论】:

    标签: html rest loopbackjs


    【解决方案1】:

    默认情况下,LoopBack 的 REST API 处理程序拥有它所挂载的整个路径命名空间的所有权。如果您将 REST API 挂载到 /api,那么只要路径未映射到任何远程方法,我们的处理程序就会返回 404。当您将 REST API 挂载到 / 时,处理程序将接管整个 HTTP 服务器。

    幸运的是,可以通过配置禁用此行为。请参阅config.json >> Remoting properties 中的rest. handleUnknownPaths 选项。

    这是一个示例,展示了如何在您的 server/config.json 文件中禁用此标志(请注意,我省略了您在该文件中可能已有的任何其他配置):

    {
      "remoting": {
        "rest": {
          "handleUnknownPaths": false
        }
      }
    }
    

    我添加了一个启动脚本,用于遵循我们的响应行为准则,这就是它给出这种类型响应的原因。

    您可能希望将 errorHandlerrest.handleErrors 都设置为 false,以便 LoopBack 不会将错误转换为 HTTP 响应。

    例如server/config.json:

    {
      "remoting": {
        "errorHandler": false,
        "rest": {
          "handleErrors": false,
          "handleUnknownPaths": false
        }
      }
    }
    

    有了这个设置,您可以编辑server/middleware.json 并用您自己的错误处理实现替换默认的strong-error-handler 中间件(请参阅Defining middleware >> Path to middleware function

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 2019-08-17
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      相关资源
      最近更新 更多