如何确定 Oracle APEX 中的主机名?

How to determine the hostname in Oracle APEX?

我想在 Oracle APEX 中创建一些指向应用程序本身的链接。但是它改变了我的开发环境和生产环境。我需要一种方法来确定我当前的主机名和端口。哪个功能可以帮到我?

必要的方法在 APEX_UTIL 包中并称为 HOST_URL。有了参数,就可以扩展输出:

鉴于您的主机名是 example.com,您的端口是 5883

function call                    |  result
---------------------------------|-----------------------------------
APEX_UTIL.HOST_URL()             |  http://example.com:5883
APEX_UTIL.HOST_URL('SCRIPT')     |  http://example.com:5883/pls/apex/
APEX_UTIL.HOST_URL('IMGPRE')     |  http://example.com:5883/i/

值为 IMGPRE 的结果取决于您在“应用程序属性”>“用户界面”>“常规属性”>“图像前缀”中的配置。

我会尽量避免为同一应用程序或同一系统上的其他应用程序生成像 http://domain/apex/f?p=123 这样的绝对 URL。请改用相对 URL 以避免更改域名。例如只使用

f?p=&APP_ID.:5:&SESSION.

如果您想引用应用程序中的特定页面。但在可能的情况下,您应该使用自动生成必要内容的声明性链接。如果您想引用其他应用,请使用

f?p=123