【问题标题】:How to set up a default (root, /, index) WEB application in Caché?如何在 Caché 中设置默认(根、/、索引)WEB 应用程序?
【发布时间】:2025-11-30 22:05:02
【问题描述】:

设置了REST应用程序,或者在CSP Files目录下有index.html文件显示应用程序,是否甚至可以将此WEB应用程序设置为服务器的默认应用程序?

也就是说,如何通过查询http://localhost而不是http://localhost/AppName/http://localhost/index.html来显示应用程序?

【问题讨论】:

    标签: intersystems-cache intersystems


    【解决方案1】:

    最好的办法是在实例启动的 Apache 服务器中设置路由规则。

    【讨论】:

    • 谢谢!这是编辑 Apache 的配置以设置 DirectoryIndex index.html 的好点。我只有最后的希望,它可以在 Caché 内部的某个地方进行设置。
    【解决方案2】:

    拥有 RESTful 应用程序,您需要将您的 WEB 应用程序命名为“/”,并在调度类中创建具有相同名称的路由:

    <Routes>
       <Route Url="/" Method="GET" Call="Index"/>
       ...
    </Routes>
    

    ...然后根据需要实现 Index 方法。

    如果是 index.html 文件 - 我相信还有其他人知道解决方案。

    【讨论】:

      【解决方案3】:

      如果你想用内部的 Apache 来实现它,你只需要在 Caché 中创建根 WebApplication。以及我确定您之前已经像 /AppName/ 那样做过,只需使用名称 / 创建即可。

      如果你想用外部 Apache 来做,那么我希望你已经配置了 properly。那么你需要的就是添加这样的行

      <Location />
        CSP on
        SetHandler csp-handler-sa
      </Location>
      

      在您的 REST 类中,您必须已经知道,Route map 使用正则表达式来获取正确的方法。所以,在路线图中你可以改变它

      <Routes>
         <Route Url="/(index\.html)?" Method="GET" Call="Index"/>
         <!-- or something like this, to catch all static for one method -->
         <Route Url="/((?!rest/).*)" Method="GET" Call="GetStatic"/>
         ...
      </Routes>
      

      【讨论】:

      • 关于 UrlMap 中的正则表达式,这是一个很好的观点,谢谢!在我的例子中,index.html 表示 CSP 子目录之一中的物理文件。 @joeb 建议更改 Apache 设置以读取 html 索引文件 - 就是这样,想知道这是否是在 Caché 中启用读取 html 索引文件的唯一方法。
      • 当你设置CSP on,那么DirectoryIndex会被忽略,每个请求都会直接发送到Cache,不做任何修改。在我的项目中,我使用这种方式,并从磁盘返回静态文件,但使用缓存而不是 apache。您可以将我的类视为示例here 方法GetStatic,它在开发模式下从磁盘返回文件,在生产模式下从XData 返回文件。
      • 就是这样,但它仍然需要查询http://example.com/index.html 而不仅仅是http://example.com,而无需像在GetStatic 中那样以编程方式重新定义路径,不是吗?
      • index.html 来自 apache,这个名字默认在DirectoryIndex,然后作为 index.php 使用。而如今,浏览器的地址字段中出现的内容并不重要。我们可以忘记index.html 并忽略它。它只留下关于旧时光的记忆。 :)
      • 我相信喜欢普通 URL 的人不会同意这一点。此外,输入站点名称并收到“404”消息也很奇怪。让我们利用DirectoryIndex Apache 的选项离开这个主题。
      最近更新 更多